Pandas DataFrame 缺失值检测与填充实战指南

一只小鹿
一只小鹿
发布时间:2026-10-13 | 5人浏览过
原创

本文详解如何在 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 缺失值查找与填充的完整示例讲解,希望能为读者提供有效的参考。

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表