Task02:数据清洗及特征处理

1.缺失值的观察与处理
通过info()来总体观察所有字段的数据类型和数据缺失情况
isnull().sum()也可以观察数据缺失情况

2.缺失值的处理
直接对某一列的缺失值进行值的处理,如下:
df[df[‘Age’]==None]=0
df[df[‘Age’].isnull()] = 0 # 还好
df[df[‘Age’] == np.nan] = 0
思考:数据处理中判断空值的方法(np.isnan、is np.nan和pd.isna)比较:np.isnan(只有数组数值运算时可使用),is np.nan(不建议使用),pd.isna(大部分数据处理的场合推荐使用)
使用dropna()和fillna()函数

3.重复值的观察与处理
使用duplicated()可以查看具体的重复值情况
drop_duplicates用于清理重复值

4.数据的分箱操作(离散化)
cut函数用于分箱
案例1:
将连续变量Age平均分箱成5个年龄段,并分别用类别变量12345表示
df[‘AgeBand’] = pd.cut(df[‘Age’], 5,labels = [1,2,3,4,5])
案例2:
将连续变量Age划分为(0,5] (5,15] (15,30] (30,50] (50,80]五个年龄段,并分别用类别变量12345表示
df[‘AgeBand’] = pd.cut(df[‘Age’],[0,5,15,30,50,80],labels = [1,2,3,4,5])
案例3:
将连续变量Age按10% 30% 50 70% 90%五个年龄段,并用分类变量12345表示
df[‘AgeBand’] = pd.qcut(df[‘Age’],[0,0.1,0.3,0.5,0.7,0.9],labels = [1,2,3,4,5])

5.将类别文本转换为one-hot编码
OneHotEncoder,通过pandas的get_dummies()
for feat in [“Age”, “Embarked”]:
x = pd.get_dummies(df[feat], prefix=feat)
df = pd.concat([df, x], axis=1)

浙ICP备19012682号