如何使用大熊猫中的groupby根据另一列中的条件计算百分比总数

模糊逻辑_77

我正在尝试研究如何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')

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何使用百分比制作大熊猫交叉表?

SQL中同一列的百分比

使用data.table根据另一列中的类别来计算发生百分比

pandas groupby:如何计算总数百分比?

在Python中按阈值计算和计算每一列的百分比

使用pyspark计算groupBy总数的百分比

子组上的新列以及另一列中的百分比范围

使用dplyr计算一列中按组计算的百分比,而忽略空白

计算SQL查询中两列之间的百分比作为另一列

使用同一列中的数据计算SQL语句所占的百分比

熊猫:如何计算一列相对于另一列的百分比?

计算组中在另一列中具有特定值的行的百分比

如何返回2列之间的百分比,该百分比由SQL中的另一列分组?

根据另一列上的条件计算价格变化和价格的累计百分比变化

如何使用Pandas Groupby计算每列中总计的百分比

如何使用groupby计算熊猫数据框中特定列的总数百分比?

一列以上的groupby的熊猫百分比

如何转置列并获取大熊猫中相同值的数量和百分比?

SSAS计算得出的成员-如何根据另一种方法计算总数的百分比

如何计算每一列的百分比?

熊猫分组-基于另一列的值占分组总数的百分比

基于另一列的列中的Python百分比计算

根据另一列计算 groupby 中的百分比

计算 SQL Query 中两列之间的百分比作为每天的另一列

SQL 查找一列总数的百分比

熊猫中的百分比计算

如何根据不同列的值创建新列并计算 R 中另一个数值列的百分比值?

根据另一列值计算数据框列中某个值出现的百分比

附加一行,其中包含所选列的平均值,并根据条件计算另一列的百分比