在Python中使用count添加新列



我有一个数据集,它查看向经理提交的报告,并希望创建一个显示这些计数的新列。

What I have:

ID    ManagerID 
101      105
102      103
103      105
104      103 
105      110

输出:

ID      ManagerID      Count 
101       105             0
102       103             0
103       105             2
104       103             0
105       110             2

我试过这样做:df['count'] = df.groupby(['ID'])['ManagerID'].transform('nunique')这给我的数字实际上不等于任何值年代。有什么建议吗?

如果我理解正确的话,您可能需要:

df['count'] = df['ID'].map(df['ManagerID'].value_counts()).fillna(0, downcast='infer')

输出:

ID  ManagerID  count
0   1          5      0
1   2          3      0
2   3          5      2
3   4          3      0
4   5         10      2

如果您试图计算ID的报告数量,那么以下操作将有效,但会产生与预期输出不同的结果,因为ID 4没有任何报告:

pd.merge(df,
df.ManagerID.value_counts().reset_index().rename(columns={"index": "ID", "ManagerID": "Count"}),
on="ID",
how="left",
suffixes=("", "_y")).fillna(0)
ID  ManagerID  Count
0   1          5    0.0
1   2          3    0.0
2   3          5    2.0
3   4          3    0.0
4   5         10    2.0

相关内容

  • 没有找到相关文章

最新更新