我知道他们有大量与计数相关的答案和问题,但我找不到我要找的那个。我有一个关于就业历史的数据集,我需要查看数字 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
如果我理解正确,你可以这样做:
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