微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Pandas非常简单来自分组依据的总大小的百分比

如何解决Pandas非常简单来自分组依据的总大小的百分比

通过使用以下命令在形状为(3e6,59)的DF上获得良好的性能(3.73s):df.groupby('col1').size().apply(lambda x: float(x) / df.groupby('col1').size().sum()*100)

解决方法

我在看似非常简单的操作上遇到了麻烦。最简单的方式是通过诸如手术之类的方法从一个小组中获得总数的百分比df.groupby['col1'].size()。分组后我的DF看起来像这样,我只想占总数的百分之一。我记得以前使用过此语句的变体,但现在无法使它起作用:percent = totals.div(totals.sum(1),axis=0)

原始DF:

       A   B   C
    0  77   3  98
    1  77  52  99
    2  77  58  61
    3  77   3  93
    4  77  31  99
    5  77  53  51
    6  77   2   9
    7  72  25  78
    8  34  41  34
    9  44  95  27

结果:

df1.groupby('A').size() / df1.groupby('A').size().sum()

    A
    34    0.1
    44    0.1
    72    0.1
    77    0.7

到目前为止,这是我想出的方法,这似乎很合理:

df.groupby('col1').size().apply(lambda x: float(x) / df.groupby('col1').size().sum()*100)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。