Datawhale数据分析教程笔记02

数据清洗及特征处理

缺失值查看

查看所有特征的缺失值
①可以使用df.info(),查看数据基本信息,包含非缺失值的个数
②df.isnull().sum(),求所有特征的确实值
查询特定特征的确实值时只需要调出特定特征值即可
例如

df[['Age','Cabin','Embarked']].isnull().sum()
或
df.loc[:,['Age','Cabin','Embarked']].info()

缺失值处理

缺失值处理的一般思路
①使用dropna()方法,删除带有缺失值的行

参数说明
axis0为行,1为列
how'any’删除带有nan的行,'all’删除全为nan的行
thresh这一行/列除去nan值,剩余数值的数量大于等于thresh,则保留这一行
subsetlist,从特定特征值查找缺失值
inplaceboolean,删除原DF对象或生成副本

②使用fillna()方法,填充缺失值

参数说明
value填充值
method‘pad’/‘ffill’表示用前面行/列的值填充当前行/列的空值, ‘backfill’ / ‘bfill’表示用后面行/列的值填充当前行/列的空值
axis0为行,1为列
inplaceboolean,删除原DF对象或生成副本
limit
downcast

重复值处理

使用duplicated()方法可以查看重复值
使用drop_duplicate()方法可以删除重复值
其参数为

参数说明
subsetlist,从特定特征值查找缺失值
keep删除重复项并保留第一次出现的项,可选‘first’,‘last’,False
inplaceboolean,删除原DF对象或生成副本

特征值处理

分箱操作

分享操作即将连续的值离散化处理,例如:将年龄分为年轻、中年、老年等
可以使用cut()函数和qcut()函数实现分箱操作

将连续变量Age平均分箱成5个年龄段,并分别用类别变量12345表示
pd.cut(df['Age'], 5, labels = [1,2,3,4,5])

将连续变量Age划分为[0,5) [5,15) [15,30) [30,50) [50,80)五个年龄段,并分别用类别变量12345表示
pd.cut(df['Age'], [0,5,15,30,50,80], labels = [1,2,3,4,5])

将连续变量Age按10% 30% 50% 70% 90%五个年龄段,并用分类变量12345表示
pd.qcut(df['Age'], [0,0.1,0.3,0.5,0.7,0.9], labels = [1,2,3,4,5])

文本变量转换

查看文本名称和种类

使用value_counts()查看某一特征的种类和数量
如:df[‘Sex’].value_counts()

替换文本变量

将查询到的文本变量替换为特定的值可以使用replace()
如:df[‘Sex’].replace([‘male’,‘female’],[1,2]
替换为one-hot编码表示

x = pd.get_dummies(df['Age'], prefix='Age')
df = pd.concat([df, x], axis=1)
从纯文本Name特征里提取出Titles的特征

从文本中匹配Title可以发现title以’.‘结尾,利用正则表达式即可提取Title
df[‘Title’] = df[‘Name’]str.extract(’([A-Za-z]+).’, expand=False)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值