使用Pandas dropna函数无法删除空值,寻求解决方案
问题原因
你用的dropna(how='all')只会删除整行所有字段都是空值的行,但从你的空值统计结果来看,Ind_ID和Test_date这两列完全没有空值——也就是说你的数据里根本不存在整行全空的记录,所以这个操作自然不会有任何效果。
解决方案
根据你的实际需求,选择对应的处理方式:
- 要是想删除只要有任意一个空值的行,把
how参数改成'any'(其实默认就是这个,不写也行):
注意:这么做会删掉大量行,因为你数据里很多列都有不少空值。df.dropna(how='any', inplace=True) # 或者直接写 df.dropna(inplace=True) df1 = df.copy() print(df1.isnull().sum()) - 要是只想删除特定列有空值的行,用
subset指定目标列,比如只删Cough_symptoms或Fever有空值的行:df.dropna(subset=['Cough_symptoms', 'Fever'], inplace=True) df1 = df.copy() print(df1.isnull().sum()) - 要是只是想确认哪些行存在空值,可以先筛选出来查看:
# 筛选出至少有一个空值的行 rows_with_null = df[df.isnull().any(axis=1)] print(rows_with_null)
内容的提问来源于stack exchange,提问作者Asra Hussain
相关产品推荐
相关产品推荐

