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

如何在DataFrame中统计各分组0值出现次数并生成对应元组列表

解法代码

你可以通过pandas的分组聚合功能快速实现需求,核心逻辑是先过滤出Id_2为0的记录,再按Id_1分组计数,最后转换为元组列表即可:

import pandas as pd

# 构造示例数据
df = pd.DataFrame({
    'Id_1': [1401,1401,1801,1801,1801,1801,2001,2001,2201,2201],
    'Id_2': [1,1,0,0,0,0,1,1,0,0]
})

# 核心逻辑
res = df[df['Id_2'] == 0].groupby('Id_1').size().reset_index(name='count')
L = list(res.itertuples(index=False, name=None))

print(L)
# 输出:[(1801, 4), (2201, 2)]
逻辑说明
  • 第一步:df[df['Id_2'] == 0] 筛选出所有Id_2为0的记录,天然过滤掉没有0值的分组
  • 第二步:groupby('Id_1').size() 按Id_1分组,统计每个分组的记录数,也就是0值出现次数
  • 第三步:itertuples(index=False, name=None) 将统计结果的每一行转为无索引的元组,最后转换为列表即可得到预期结果

如果需要保留所有Id_1分组(包括0值出现次数为0的分组),可以把核心逻辑替换为:

res = df.groupby('Id_1')['Id_2'].agg(lambda x: (x == 0).sum()).reset_index(name='count')
L = list(res.itertuples(index=False, name=None))

此时输出会包含(1401,0)、(2001,0)两个额外元组。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.23 16:57:03