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

如何在Pandas中统计分组列的行数并生成对应列

问题描述

我有一个简单的数据集,希望按Team列的值进行分组,并创建新列Count存储每组的行数。尝试了多种方法均未成功,比如以下无效示例代码:

import pandas as pd
data = {'Team' : ['1', '1', '1', '1', '1', '2', '2', '2', '2', '2', '2', '2', '2', '2', '3','3', '3', '3', '3', '3', '3', '3', '3', '3', '3']}

df = pd.DataFrame(data)
df['Count'] = df.groupby('Team')['Team'].count()
print(df)

我还尝试了.size()和.value_counts()方法,但都无效。期望输出如下:

import pandas as pd
data = {'Team' : ['1', '1', '1', '1', '1', '2', '2', '2', '2', '2', '2', '2', '2', '2', '3','3', '3', '3', '3', '3', '3', '3', '3', '3', '3'],
        'Count' : [5, 5, 5, 5, 5, 9, 9, 9, 9, 9, 9, 9, 9, 9, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11]}

df = pd.DataFrame(data)
print(df)
解决方法

你的核心问题是直接将分组聚合结果赋值给新列时,聚合结果的索引与原DataFrame不匹配,导致大部分位置出现NaN。以下是几种可行的解决方案:

方法1:使用groupby.transform()

transform()会将聚合结果广播到原DataFrame的每一行,自动匹配索引,是最直接的实现方式:

import pandas as pd
data = {'Team' : ['1', '1', '1', '1', '1', '2', '2', '2', '2', '2', '2', '2', '2', '2', '3','3', '3', '3', '3', '3', '3', '3', '3', '3', '3']}
df = pd.DataFrame(data)

# count()统计非NaN值,size()统计所有行(包含NaN),按需选择
df['Count'] = df.groupby('Team')['Team'].transform('count')
# 等价写法:df['Count'] = df.groupby('Team')['Team'].transform('size')

print(df)

方法2:结合value_counts()和map()

先统计每个Team的出现次数,再通过map()将对应次数映射到原列:

import pandas as pd
data = {'Team' : ['1', '1', '1', '1', '1', '2', '2', '2', '2', '2', '2', '2', '2', '2', '3','3', '3', '3', '3', '3', '3', '3', '3', '3', '3']}
df = pd.DataFrame(data)

team_counts = df['Team'].value_counts()
df['Count'] = df['Team'].map(team_counts)

print(df)

方法3:使用groupby.size()+merge()

先分组计算每组行数,再通过合并操作将结果关联回原DataFrame:

import pandas as pd
data = {'Team' : ['1', '1', '1', '1', '1', '2', '2', '2', '2', '2', '2', '2', '2', '2', '3','3', '3', '3', '3', '3', '3', '3', '3', '3', '3']}
df = pd.DataFrame(data)

# 分组计算行数并转为普通DataFrame
count_df = df.groupby('Team').size().reset_index(name='Count')
# 左合并回原表
df = df.merge(count_df, on='Team', how='left')

print(df)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.17 07:52:45