小编Vij*_*iya的帖子

熊猫的多重累计计数

我有DF:

data = [["John","144","Smith","200"], ["Mia","220","John","144"],["Caleb","155","Smith","200"],["Smith","200","Jason","500"]]
data_frame = pd.DataFrame(data,columns = ["Name","ID","Manager_name","Manager_ID"])
data_frame
Run Code Online (Sandbox Code Playgroud)

OP:

    Name    ID    Manager_name  Manager_ID
  0 John    144    Smith             200
  1 Mia     220    John              144
  2 Caleb   155    Smith             200
  3 Smith   200    Jason             500
Run Code Online (Sandbox Code Playgroud)

我正在尝试计算“名称”列中每个人下报告的人数。

逻辑是:

计算单个报告的人数以及该链中报告的人数。例如史密斯;约翰和卡勒布向史密斯报告,所以2 + 1,而米娅向约翰报告(他已经向史密斯报告),所以总数为3。

对于杰森-> 1同样,因为史密斯向他报告,并且3个人已经向史密斯报告,所以总数为4。

我知道如何以某种递归的方式Python地做到这一点,有没有一种方法可以在Pandas中有效地做到这一点。有什么建议么?

预期的OP:

Name        Number of people reporting
John               1
Mia                0
Caleb              0
Smith              3
Jason              4
Run Code Online (Sandbox Code Playgroud)

python pandas pandas-groupby

9
推荐指数
2
解决办法
197
查看次数

标签 统计

pandas ×1

pandas-groupby ×1

python ×1