第一步 导入模块 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行被删除