熊猫按值分组并将观测值返回数据集



我有一个如下所示的数据集:

id    value
a      0
a      0
a      0
a      0
a      1
a      2
a      2
a      2
b      0
b      0
b      1
b      2
b      2

我想按"id"列分组并获取"值"列中的观察值数量,并在原始数据集中返回一个新列,该列计算每个 id 中"值"观察值发生的次数。

我正在寻找的输出示例在"输出"列中表示:

id    value    output
a      0        4
a      0        4 
a      0        4
a      0        4
a      1        1
a      2        3
a      2        3
a      2        3
b      0        2
b      0        2
b      1        1 
b      2        2
b      2        2
在 id "a"

上分组时,有 4 个 0 的观测值,该观测值在包含 id "a" 且值为 0 的每一行的"输出"列中提供。

我已经尝试了分组的应用程序并申请,但无济于事。任何建议都会非常有帮助。谢谢。

更新:我想出了一个解决方案,为任何也面临这个问题的人,它运行良好。

grouped = df.groupby(['id','value'])
df['output'] = grouped['value'].transform('count')

这将返回每个存储桶下的观察计数,并将该计数返回到满足该条件的每个观察,如上面的"输出"列所示。

按 id 和 value 分组,然后计数值。

data.groupby(['id' , 'value'])['id'].transform('count')

最新更新