我想要一个新列“group_count”。这在 中向我显示了该属性总共出现了多少组。

       Group  Attribute  group_count
    0      1         10              4
    1      1         10              4
    2      1         10              4
    3      2         10              4
    4      2         20              1
    5      3         30              1
    6      3         10              4
    7      4         10              4

我尝试对组和属性进行分组,然后使用计数进行转换
df["group_count"] = df.groupby(["Group", "Attributes"])["Attributes"].transform("count")

       Group  Attribute  group_count
0      1         10            3
1      1         10            3
2      1         10            3
3      2         10            1
4      2         20            1
5      3         30            1
6      3         10            1
7      4         10            1

但它不起作用

最佳答案

DataFrameGroupBy.nunique transform 一起使用:

df['group_count1'] = df.groupby('Attribute')['Group'].transform('nunique')
print (df)
   Group  Attribute  group_count  group_count1
0      1         10            4             4
1      1         10            4             4
2      1         10            4             4
3      2         10            4             4
4      2         20            1             1
5      3         30            1             1
6      3         10            4             4
7      4         10            4             4

关于pandas - 新列中的组计数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/57902538/

10-16 16:35