在python中使用map函数的替代方法是什么

k4emjkb1  于 2023-04-19  发布在  Python
关注(0)|答案(1)|浏览(136)

我有一个数据集,我需要得到一个计数的报告,我正在使用Map,但似乎没有工作。
样本数据:

ID        Manager_ID     Manger_Pos_Num  
101          103              1111
102          103              1111
103          106              2222
104          103              3333 
105          106              2222
106

所需输出:

ID     Reports 
 101      0
 102      0
 103      2
 103      1          
 104      0  
 105      0
 106      2

我在用

counts = df.groupby('Manager_Pos_Num')['ID'].nunique()
df['Reports'] = df['ID'].map(counts).fillna(0).astype(int)

当我使用这个我得到所有的零我不知道为什么我已经检查了计数变量,这工程我不知道,如果它的Map功能或没有任何建议?
我使用Manager_Pos_Num而不是ManagerID进行计数,因为我想看看该管理器是否在另一个Manager_Pos_Num中。

ubby3x7f

ubby3x7f1#

你试图计算唯一对(Manager_ID, Manger_Pos_Num)的数量,所以groupby().size(),然后merge而不是map,因为你在新数据上有重复的ID(例如103):

df[['ID']].merge(df.groupby(['Manager_ID','Manger_Pos_Num']).size()
                   .reset_index('Manger_Pos_Num', drop='True')
                   .reset_index(name='count'),
                 right_on='Manager_ID', left_on='ID', how='outer'
                ).fillna(0)[['ID','count']]

输出:

ID  count
0  101    0.0
1  102    0.0
2  103    2.0
3  103    1.0
4  104    0.0
5  105    0.0
6  106    2.0

相关问题