You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何更高效地从Pandas DataFrame提取NaN数据至新DataFrame?

更简洁的空值统计DataFrame实现方式

首先得指出你原代码里的一个小问题:columnData.isnull().any().sum()是错误的写法——any()会返回该列是否存在空值的布尔值(True/False),再调用sum()只会得到0或1,没法统计实际的空值数量,正确的统计应该用columnData.isnull().sum()。

接下来给你两种更简洁的实现方式,完全不需要循环:

方法一:利用Series的reset_index转换

empty = dataset.isnull().sum().reset_index()
empty.columns = ['Column', 'NaNs']

解释:

  • dataset.isnull().sum()会生成一个Series,索引是原DataFrame的列名,值对应各列的空值数量
  • reset_index()把索引转为普通列,再通过columns重命名成你需要的列名,两行就搞定。

方法二:直接构造DataFrame(一行实现)

empty = pd.DataFrame({'Column': dataset.columns, 'NaNs': dataset.isnull().sum().values})

解释:直接用原DataFrame的列名列表作为Column列的值,用空值统计结果的数组作为NaNs列的值,一步生成目标DataFrame。

这两种方法都用了pandas的矢量化操作,比循环的效率高得多,代码也更简洁易读。

内容的提问来源于stack exchange,提问作者Karsten S.

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.23 13:42:32