gpt4 book ai didi

python - 逐行求和,得到占总数 x % 的列

转载 作者:行者123 更新时间:2023-12-01 00:12:09 25 4
gpt4 key购买 nike

好吧,这有点难以描述。基本上,我有一个如下所示的数据框,其中每列(从 0-90)代表一天,从第 0 天到第 90 天后的 90 天,每个单元格上的数字是该 ID 的某个特征的总和在那一天:

        ID      0   1   2   3   4   5   6   7   8   ... 81  82  83  84  85  86  87  88  89  90  total
------------------------------------------------------------------------------------------------------
0 A 2 21 0 18 3 0 0 0 2 ... 0 0 0 0 0 0 0 0 0 0 156
1 B 0 20 12 2 0 8 14 23 0 ... 0 0 0 0 0 0 0 0 0 0 231
2 C 0 38 19 3 1 3 3 7 1 ... 0 0 0 0 0 0 0 0 0 0 78
3 D 3 0 0 1 0 0 0 0 0 ... 0 0 0 0 0 0 0 0 0 0 5

我需要的是第一个是一个新列,显示之前值的总和达到“总”值的90%的列号>。 示例:对于第一行,我想知道何时(哪一天,0-90 之间)该 ID 的值总和达到总数的 90%,即 156。我会一个新列,用于保存当天的值,总计占总数的 90%,如下所示:

        ID      0   1   2   3   4   5   6   7   8   ... 81  82  83  84  85  86  87  88  89  90  total  day_90%
--------------------------------------------------------------------------------------------------------------
0 A 2 21 0 18 3 0 0 0 2 ... 0 0 0 0 0 0 0 0 0 0 156 54

最佳答案

试试这个:

df_pct = df.cumsum(axis=1).div(df.sum(axis=1), axis=0)

df['day_90%'] = (df_pct > .9).idxmax(axis=1)

使用idxmax返回累积百分比大于0.9的第一次True。

关于python - 逐行求和,得到占总数 x % 的列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59570530/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com