熊猫计算列中的元素并以重复的方式显示

Ele*_*nor 0 python group-by count pandas

我想得到这样的东西.

A
1
1
2
3
3
4
4
4
4
Run Code Online (Sandbox Code Playgroud)

我想做到这一点

A   B
1   2
1   2
2   1
3   2
3   2
4   4
4   4
4   4
4   4
Run Code Online (Sandbox Code Playgroud)

就像你在这里看到的那样,密钥是重复的,并且仍然与原始密钥相同.

我知道如何使用data.table在R中执行此任务,我只知道如何使用groupby获取pandas中的唯一键计数.

有人有想法吗?

谢谢!

Jay*_*sco 5

你可以用这个:

import pandas as pd

df = pd.DataFrame({
    'A' : [1, 1, 2, 3, 3, 4, 4, 4, 4]
})
df['B'] = df.groupby(['A'])['A'].transform('count')

print(df)
Run Code Online (Sandbox Code Playgroud)

输出:

   A  B
0  1  2
1  1  2
2  2  1
3  3  2
4  3  2
5  4  4
6  4  4
7  4  4
8  4  4
Run Code Online (Sandbox Code Playgroud)