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

如何用Pandas按年份和航次统计指定列的空值数量

解决Pandas分组统计空值的语法错误

你的代码出现语法错误,核心问题是groupby(['year', 'cruise_id'])之后直接拼接df['extraction_no']的写法不符合Pandas的链式调用规则,正确的写法需要在分组后指定目标列,再对列执行空值统计操作。

以下是几种可行的解决方案:

方法1:链式调用apply统计空值

直接对分组后的extraction_no列应用空值统计逻辑:

eDNADFBlanksSummary = eDNADF.groupby(['year', 'cruise_id'])['extraction_no'].apply(lambda x: x.isna().sum())

方法2:用agg自定义统计结果列名

这种方式可以直接指定统计结果的列名,输出结构更清晰:

eDNADFBlanksSummary = eDNADF.groupby(['year', 'cruise_id']).agg(
    extraction_no_null_count=('extraction_no', lambda x: x.isna().sum())
)

方法3:先标记空值再分组求和

先新增一列标记extraction_no是否为空,再按分组求和,逻辑更直观:

# 新增空值标记列
eDNADF['extraction_no_is_null'] = eDNADF['extraction_no'].isna()
# 分组统计空值数量
eDNADFBlanksSummary = eDNADF.groupby(['year', 'cruise_id'])['extraction_no_is_null'].sum()

内容的提问来源于stack exchange,提问作者Brandon Feole

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 21:13:19