在 Pandas 中按 ID 分组计数

问题描述 投票:0回答:1

我知道他们有大量与计数相关的答案和问题,但我找不到我要找的那个。我有一个关于就业历史的数据集,我需要查看数字 1 按经理分组的 ID 出现了多少次。

DF

 ID      Date    Job     Manager     Full-Time
 101   05/2022   Sales     103         1
 101   06/2022   Sales     103         1
 102   08/2022   Tech      105         0
 102   09/2022   Tech      105         1
 103   11/2021   Sales     110         0
 104   04/2022   Sales     103         0
 104   05/2022   Sales     103         1
 104   06/2022   Sales     103         1
 104   07/2022   Sales     103         1
 104   08/2022   Sales     103         0
 ......
 201   10/2022   HR        198         1 

我想要的不是一个 ID 有多少个 1,而是有多少个 ID 在他们的历史记录中有一个 1 分组到他们所属的经理。

期望的输出

Manager     Full-Time Count 
  103              2
  105              1
  110              3
  ....
  198      `        2

我尝试使用

df['FT Count'] df.groupby('Manager')['Full-Time'].nunique

python python-3.x pandas dataframe count
1个回答
1
投票

如果我理解正确,你可以这样做:

x = df[df['Full-Time'].eq(1)].groupby('ID')['ID'].count()
print(x)

印花:

ID
101    2
102    1
104    3
201    1
Name: ID, dtype: int64

或使用

.pivot_table

x = df.pivot_table(index='ID', values='Full-Time', aggfunc='sum')
print(x)

印花:

     Full-Time
ID            
101          2
102          1
103          0
104          3
201          1
© www.soinside.com 2019 - 2024. All rights reserved.