如何使用大pandas中的groupby根据另一列中的条件计算百分比总数
我正在尝试找出如何groupby
在给定的Yes / No条件下在熊猫中使用该函数来计算每年的价值比例。
例如,我有一个数据框,名为names
:
Name Number Year Sex Criteria
0 name1 789 1998 Male N
1 name1 688 1999 Male N
2 name1 639 2000 Male N
3 name2 551 1998 Male Y
4 name2 499 1999 Male Y
我可以用
namesgrouped = names.groupby(["Sex", "Year", "Criteria"]).sum()
要得到:
Number
Sex Year Criteria
Male 1998 N 14507
Y 2308
1999 N 14119
Y 2331
等等。我希望“数字标准”列显示每种性别和年份占总数的百分比-因此,不是1998年的N = 14507和Y = 2308,而是N = 86.27%和Y =
13.73%。
谁能建议该怎么做?
-
这个问题是建议重复项的直接扩展。从公认的答案中借用,这将起作用:
In [46]: namesgrouped.groupby(level=[0, 1]).apply(lambda g: g / g.sum()) Out[46]: Number Sex Year Criteria Male 1998 N 0.588806 Y 0.411194 1999 N 0.579612 Y 0.420388 2000 N 1.000000
编辑 :转换操作可能比应用更快:
namesgrouped / namesgrouped.groupby(level=[0, 1]).transform('sum')
-
使用 groupby 的 Pandas 占总数的百分比
2022-07-28 关注 0 浏览22 1答案
-
Python-pandas与groupby占总数的百分比
2021-02-02 关注 0 浏览207 1答案
-
如何使用Pandas的DataFrame计算百分比
2021-01-29 关注 0 浏览187 1答案
-
列中按值表示的pandas百分比
2021-01-29 关注 0 浏览90 1答案
-
计算pandas DataFrame中的行百分比?
2021-01-29 关注 0 浏览117 1答案
-
pandas groupby查找正确和错误的百分比
2021-01-29 关注 0 浏览62 1答案
-
如何使用pandas计算与初始值相比的变化百分比?
2021-01-29 关注 0 浏览75 1答案
-
如何使用 SQL 语句计算百分比
2022-07-28 关注 0 浏览14 1答案
-
如何根据数据帧的NAN百分比删除列?
2021-01-29 关注 0 浏览66 1答案
-
熊猫:.groupby()。size()和百分比
2021-01-29 关注 0 浏览75 1答案