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的数量。但是变换会将结果重塑为原始维度。明白了,那么变换就是我需要的。谢谢