案例:对特殊的Excel的读取,清洗,处理
1.读取excel的时候忽略前几个空行
import pandas as pd
#skiprows=2,跳过前两行
studf = pd.read_excel("../data/stu.xlsx",skiprows=2)
print(studf)
2.检测空值
print(studf.isnull())
# print(studf['分数'].isnull())
# print(studf['分数'].isnull())
# 筛选没有空分数的所有行
# print(studf.loc[studf['分数'].notnull(),:])
3.删除掉全部是空值的列
# 如果列都是空,则删除掉,how匹配所有,inplace=True代表直接修改
studf.dropna(axis="columns", how='all', inplace=True)
print(studf)
4.删除掉全部是空值的行
studf.dropna(axis="index", how='all', inplace=True)
print(studf)
5.将分数列为空的填充为0分
studf = studf.fillna({"分数": 0})
# 等同于
# studf.loc[:, '分数'] = studf['分数'].fillna(0)
print(studf)
6.将姓名的缺失值填充
使用前面有效值填充,用ffill:forward fill
studf.loc[:, '姓名'] = studf['姓名'].fillna(method='ffill')
print(studf)
7.将清洗好的excel保存
studf.to_excel("../data/stu_clean.xlsx", index=False)
最后结果