
案例:对特殊的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)
最后结果

1467

被折叠的 条评论
为什么被折叠?



