数据清洗

第一步 导入模块 pandas

 import pandas as pad

打开文件:

stu = pad.read_excel("d:\\resu\\python_test\\练习文件\\例题源程序-学生\\data\\studentsInfo.xlsx",'Group1',index_col=0)
>>> stu
        性别    年龄   身高    体重            省份    成绩    月生活费  课程兴趣  案例教学
序号                                                                 
1     male  20.0  170  70.0      LiaoNing   NaN   800.0     5     4
2     male  22.0  180  71.0       GuangXi  77.0  1300.0     3     4
3     male   NaN  180  62.0        FuJian  57.0  1000.0     2     4
4     male  20.0  177  72.0      LiaoNing  79.0   900.0     4     4
5     male  20.0  172   NaN      ShanDong  91.0     NaN     5     5
6     male  20.0  179  75.0        YunNan  92.0   950.0     5     5
7   female  21.0  166  53.0      LiaoNing  80.0  1200.0     4     5
8   female  20.0  162  47.0         AnHui  78.0  1000.0     4     4
9   female  20.0  162  47.0         AnHui  78.0  1000.0     4     4
10    male  19.0  169  76.0  HeiLongJiang  88.0  1100.0     5     5

1

1

缺失数据的处理:

删除值为NaN的数据列:
(这个有点错误,等一会写一个博客来说这个的用法)

>>> stu.dropna(axis = 1)
        性别   身高            省份  课程兴趣  案例教学
序号                                       
1     male  170      LiaoNing     5     4
2     male  180       GuangXi     3     4
3     male  180        FuJian     2     4
4     male  177      LiaoNing     4     4
5     male  172      ShanDong     5     5
6     male  179        YunNan     5     5
7   female  166      LiaoNing     4     5
8   female  162         AnHui     4     4
9   female  162         AnHui     4     4
10    male  169  HeiLongJiang     5     5

axis 的默认值是0 ,表示删除某行的数据列
axist=1 表示删除某列

删除缺失数据过多的数据列:
>>> stu.dropna(thresh=8)#保留有效数值大于等于8的数据
        性别    年龄   身高    体重            省份    成绩    月生活费  课程兴趣  案例教学
序号                                                                 
1     male  20.0  170  70.0      LiaoNing   NaN   800.0     5     4
2     male  22.0  180  71.0       GuangXi  77.0  1300.0     3     4
3     male   NaN  180  62.0        FuJian  57.0  1000.0     2     4
4     male  20.0  177  72.0      LiaoNing  79.0   900.0     4     4
6     male  20.0  179  75.0        YunNan  92.0   950.0     5     5
7   female  21.0  166  53.0      LiaoNing  80.0  1200.0     4     5
8   female  20.0  162  47.0         AnHui  78.0  1000.0     4     4
9   female  20.0  162  47.0         AnHui  78.0  1000.0     4     4
10    male  19.0  169  76.0  HeiLongJiang  88.0  1100.0     5     5
缺失数据的填充:
stu.fillna({'年龄':20,"体重":stu['体重'].mean()})

将年龄缺失的设置为20,将体重缺失的设置为平均值
1

1

stu.fillna(method = 'ffill')

但是这个好像把所有的都给填充了,能不能指定列呢,有点难受。
1
1

缺失数据的替换:

将数据缺失的用前一行数据替换

注意:
上述操作都会产生一个新的数据对象,原始数据不会被修改,可以通过设置参数 inplace = true 来直接填充原始对象的缺失数据。

去重:

>>> stu.drop_duplicates()
        性别    年龄   身高    体重            省份    成绩    月生活费  课程兴趣  案例教学
序号                                                                 
1     male  20.0  170  70.0      LiaoNing   NaN   800.0     5     4
2     male  22.0  180  71.0       GuangXi  77.0  1300.0     3     4
3     male   NaN  180  62.0        FuJian  57.0  1000.0     2     4
4     male  20.0  177  72.0      LiaoNing  79.0   900.0     4     4
5     male  20.0  172   NaN      ShanDong  91.0     NaN     5     5
6     male  20.0  179  75.0        YunNan  92.0   950.0     5     5
7   female  21.0  166  53.0      LiaoNing  80.0  1200.0     4     5
8   female  20.0  162  47.0         AnHui  78.0  1000.0     4     4
10    male  19.0  169  76.0  HeiLongJiang  88.0  1100.0     5     5

第9行被删除

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值