gpt4 book ai didi

python - pandas 如何计算列值加起来达到阈值的行数

转载 作者:太空宇宙 更新时间:2023-11-04 11:16:27 24 4
gpt4 key购买 nike

我有以下df,

pct    id
0.3 631
0.2 115
0.1 312
0.2 581
0.01 574
0.09 586

我想先按pctdf进行排序,

df.sort_values(by=['pct'], ascending=False, inplace=True)

然后将 pct 相加到 0.8 并计算有多少行,例如在这种情况下,前 4 行;我想知道最好的方法是什么。使用 pd.evalpd.query

最佳答案

使用 Series.cumsum 的累计和就像提到的@Chris A,如果需要计算行数,请使用sum:

out = df['pct'].cumsum().lt(0.8).sum()
print (out)
4

或按 boolean indexing 过滤:

df1 = df[df['pct'].cumsum().lt(0.8)]
print (df1)
pct id
0 0.3 631
1 0.2 115
3 0.2 581
2 0.1 312

关于python - pandas 如何计算列值加起来达到阈值的行数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56901035/

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