Pandas 数据清洗 缺失值处理


# 1)读取数据:
df = pd.read_excel('file_path', skiprows=2)        跳过2个空行的数据不读取

# 2)检测空值:
df.isnull()		# 所有检测,对应的df.notnull() 为True说明有值
df['分数'].isnull()	# 单列检测

# 3)筛选没有空分数的所有行:
df.loc[df['分数'].notnull(), :]

# 4)删掉全是空值的列:              columns按列删除,how为all是所有字段为空,一点值也没有才判定删除
df.dropna(axis='columns', how='all', inplace=True)

# 5)删除掉全是空值的行
df.dropna(axis='index', how='all', inplace=True)

# 6)将分数列为空的填充为0分
# 6.1)方案1
df.fillna({'分数':0})
# 6.2)方案2
df.loc[:, '分数'] = df['分数'].fillna(0)	# 修改为分数的列

# 7)将姓名的缺失值进行填充 使用前面的有效值进行填充 填充姓名列
df.loc[:, '姓名'] = df['姓名'].fillna(method='ffill')	# ffill--->forward fill

# 8)将清洗好的excel进行保存 index=False不对索引进行保存
df.to_excel('/Users/mac/PycharmProjects/49_pandas/data/student_excel_clean.xlsx', index=False)

相关