Python Pandas-创建一个新列,其中填充另一列中的观察数

Python Pandas-创建一个新列,其中填充另一列中的观察数,python,pandas,Python,Pandas,我有一个数据帧对象df。df中的列值之一是ID有许多行具有相同的ID 我想创建一个新的列num_totals,用于计算每个ID的观察次数。例如,类似以下内容: ID | Num Totals 1 | 3 1 | 3 1 | 3 2 | 2 2 | 2 3 | 3 3 | 3 3 | 3 4 | 1 在Pandas中,最快的方法是什么?一个简单的groupby+转换可以工作: df['num_totals'] = df.gr

我有一个数据帧对象
df
df
中的列值之一是
ID
有许多行具有相同的ID

我想创建一个新的列
num_totals
,用于计算每个ID的观察次数。例如,类似以下内容:

ID | Num Totals
1  |    3
1  |    3
1  |    3
2  |    2
2  |    2
3  |    3
3  |    3
3  |    3
4  |    1

在Pandas中,最快的方法是什么?

一个简单的groupby+转换可以工作:

df['num_totals'] = df.groupby('ID').transform('count')

知道了。PANDAS是全新的,我不确定这是否会将总计添加到ID中的每一行,还是仅添加其中一行。如果使用
.count()
.agg('count')
而不是
transform()
,它确实会压缩到唯一ID的数量。但是变换会将结果重塑为原始维度。明白了,那么变换就是我需要的。谢谢