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

如何用Pandas实现类似Excel COUNTIFS的按姓名统计空值并输出至其他工作表?

解决方案:按姓名统计指定列空值并写入Excel

结论先行:完全不需要使用字典,直接通过Pandas读取Excel文件就能完成你的需求,步骤清晰且高效。

具体实现步骤

1. 读取Excel文件

用pd.read_excel()直接读取目标Excel文件,无需额外转字典。

2. 按姓名分组统计空值

通过groupby()按姓名分组,结合isna().sum()统计指定列的空值数量。

3. 将结果写入新工作表

用to_excel()将统计结果写入原文件的新工作表,或单独的新文件。

完整代码示例

模拟Excel读取场景(含你的测试数据)

import pandas as pd

# 实际使用时替换成你的Excel文件路径
# df = pd.read_excel("你的数据源文件.xlsx")
# 以下是你提供的测试数据
df = pd.DataFrame({
    "Name": ["Alice", "Bob", "Jas", "Carl", "Bob", "Jon", "Alice"],
    "Age": [23, 24, 22, None, None, 27, 23],
    "Weight": [71, 67, 51, 75, None, 67, 71],
    "Height": [49, 59, 54, None, 59, 56, 49]
})

# 按Name分组,统计Age列的空值数量
null_count = df.groupby("Name")["Age"].apply(lambda x: x.isna().sum()).reset_index(name="Age空值数量")

# 将结果写入Excel的新工作表(命名为"空值统计")
with pd.ExcelWriter("你的输出文件.xlsx", mode="w") as writer:
    df.to_excel(writer, sheet_name="原始数据", index=False)
    null_count.to_excel(writer, sheet_name="空值统计", index=False)

扩展说明

如果需要同时统计多列(比如Age、Weight)的空值,只需修改分组统计部分:

# 批量统计多列空值
multi_null_count = df.groupby("Name")[["Age", "Weight"]].apply(lambda x: x.isna().sum()).reset_index()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 03:58:16