计算每个X值多索引的Y值

2024-04-16 15:16:25 发布

您现在位置:Python中文网/ 问答频道 /正文

我有这种df

          Modules
X     Y   
1    1          A
     2          B
     45         C
2    13         A
     12         B
3    18         A
     16         B
     15         D

我想计算每个X值的Y值数量,并将其作为一列添加,如下所示:

          Modules  Count 
X     Y   
1    1          A      3
     2          B      3
     45         C      3
2    13         A      2
     12         B      2
3    18         A      3
     16         B      3
     15         D      3

目前,我已经尝试:

df['Count']=df.index.get_level_values(0).value_counts()

这给了我一个NaN的列表,然后我试着:

df['Count']=df.index.value_counts()

这显然给了我一个清单

有人能帮我吗


Tags: modulesdf列表get数量indexvaluecount
2条回答

试试这个

df.groupby(level=[0,1]).size()

指定列时,可以为该列指定任何名称

您可以分组并计算每个组的条目数,因为您希望返回的序列长度与原始序列长度相同,所以可以使用.transform()来完成以下操作:

df['Count'] = df.groupby(['X'])['Modules'].transform('count')


   X   Y Modules  Count
0  1   1       A      3
1  1   1       B      3
2  1  45       C      3
3  2  13       A      2
4  2  12       B      2
5  3  18       A      3
6  3  16       B      3
7  3  15       D      3

相关问题 更多 >