数据预处理实例演示

1.数据读取-读取7个csv文件

data_list=[]
for i in range(1,8):
    data=pd.read_csv('./data{}.csv'.format(i))
    data_list.append(data)

2.数据合并与选取

将csv放进list里后,7个csv是独立数据,len(data_list) #out=7, 此时我们要使用concat将数据融合在一起(注意,pandas concat函数需要传入的是列表,本例中我们的数据正好是列表)

data=pd.concat(data_list)

3.探索数据

有了数据后可以对数据进行探索

data.head()      #查看数据前五行

data.describe()  #描述数据的基本情况,包括count,mean,min,max

data.info()      #介绍数据的信息,包括数据类型,有多少列多少行

data.shape()     #多少列多少行

data.dtypes      #查看数据类型

data.columns:   #以列表的形式显示数据表的列名

data.loc[n]:    #返回索引值为n的行

data.loc[m][n]: #返回索引值为m行n列的数据

data.loc[m:n]:  #返回索引值为m到n的行

data.columns.tolist():#将列名做成列表

data.sort_values("str",inplace=True, ascending=False):
#将str一列按照降序排列,且得到的数据替换原数据

data=data[['col1','col2','col3']]  #选取其中对几列进行分析

4.缺失值和重复值处理

缺失值:

(data.isnull()).sum()
data.dropna(how='all', inplace=True)
df.isnull().sum(axis=0).sort_values(ascending=False)/float(len(df))# 检查缺失值比例 

重复值:

(data.duplicated()).sum()
(data.duplicate(subset=['col1','col2'])).sum() #根据col1, col2来看有多少重复值
data.dropduplicates(subset=['col1','col2'],inplace=True)

5.数据类型转换

将34464元/平 变成 34464数字型

 在处理之前,先检查这一列,是否所有的数据都包含 元/平

data.colname.str.contains('元/平')

返回的结果难以统计,这时候可以取反

(~data.colname.str.contains('元/平')).sum()
data.colname.str.replace('元/平','').astype(np.float32)

6.异常值

比如,房价是大于0的,但是当我们查看最小值后,发现最小值为0,这里要进行筛选

data=data[data.colname>10000]

  • 1
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
以下是一个简单的数据预处理案例,假设我们有一个包含房屋面积、房间数、价格等信息的数据集,现在需要对数据进行预处理以便进行建模和分析。 1. 数据清洗 我们需要查看数据是否存在缺失值、异常值、重复值等问题,并对这些问题进行处理。 ```python import pandas as pd # 读取数据 data = pd.read_csv("house_data.csv") # 查看数据信息 print(data.info()) # 处理缺失值 data.dropna(inplace=True) # 处理异常值 data = data[(data['area'] > 0) & (data['rooms'] > 0) & (data['price'] > 0)] # 处理重复值 data.drop_duplicates(inplace=True) ``` 2. 数据变换 我们需要对数据进行归一化、标准化等操作,以便更好地进行分析和建模。 ```python from sklearn.preprocessing import MinMaxScaler, StandardScaler # 归一化 scaler1 = MinMaxScaler() data[['area', 'rooms']] = scaler1.fit_transform(data[['area', 'rooms']]) # 标准化 scaler2 = StandardScaler() data[['price']] = scaler2.fit_transform(data[['price']]) ``` 3. 特征选择 我们需要从原始数据集中选择最具有代表性的特征,以降低模型复杂度和提高模型的泛化能力。 ```python from sklearn.feature_selection import SelectKBest, f_regression # 特征选择 selector = SelectKBest(f_regression, k=2) X = data[['area', 'rooms']] y = data['price'] X_new = selector.fit_transform(X, y) ``` 4. 数据降维 我们可以使用主成分分析、线性判别分析等方法,将高维数据映射到低维空间中,以减少计算复杂度和提高模型的泛化能力。 ```python from sklearn.decomposition import PCA # 主成分分析 pca = PCA(n_components=2) X_new = pca.fit_transform(X) ``` 以上是一个简单的数据预处理案例,实际应用中需要根据具体的数据类型、分析需求和建模方法选择不同的处理方法和技术。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值