Pandas DataFrame 缺失值检测与填充实战指南
本文详解如何在 Pandas DataFrame 中检测列是否存在空值,并通过 isnull() 与 any() 组合返回 Series 结果。介绍将检测结果转化为 DataFrame 以筛选非空列的方法,以及针对特定列如 nkill 提取含空值记录的技巧。最后演示使用 fillna() 进行原地填充,支持指定数值或统计量(如中位数),并强调 inplace=True 参数对原数据直接修改的作用。
首先需要检查 DataFrame 中每一列是否包含空值。
temp = data.isnull().any() #列中是否存在空值 print(type(temp)) print(temp)
执行上述操作后,返回的结果类型为 Series。对于不包含空值的列,其对应的布尔值为 False。
<class 'pandas.core.series.Series'> eventid False iyear False imonth False iday False approxdate True extended False resolution True ... Length: 135, dtype: bool
当列数量较多时,可以将返回的 Series 转换为 DataFrame,从而更方便地筛选出不存在空值的列。
colnull=pd.DataFrame(data={'colname': temp.index,'isnulls':temp.values})
#print(colnull.head())
#不存在空值的列名
print(colnull.loc[colnull.isnulls==False,'colname'])
转换后的结果展示如下。
0 eventid 1 iyear 2 imonth 3 iday ... Name: colname, dtype: object
若需提取某一特定列(例如 nkill)中存在空值的记录,可通过条件筛选返回一个包含这些记录的 DataFrame。
data[data.nkill.isnull()]
接下来进行缺失值填充操作。设置 inplace 参数为 True 表示直接在原始的 DataFrame 上进行修改,而不生成新的副本。
data['doubtterr'].fillna(0, inplace=True) data['propvalue'].fillna(data['propvalue'].median(),inplace=True)
以上内容即为关于 Pandas DataFrame 缺失值查找与填充的完整示例讲解,希望能为读者提供有效的参考。
本站声明
本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。













