gpt4 book ai didi

python - Python中通过一列的特定总和值选择前N行

转载 作者:行者123 更新时间:2023-11-30 22:01:36 24 4
gpt4 key购买 nike

如果我有一个像这样的数据框(我最后从链接复制示例数据框):

Browsers        Sessions
Chrome 201
IE 136
Safari 101
Firefox 36
SamsungBrowse 12
Opera 6

我希望Sessions的总和值的前N行小于给定数字,例如500?如何在Python中实现这一点?谢谢。

Browsers        Sessions
Chrome 201
IE 136
Safari 101

这是我尝试过的:

df = df[df['Session'].sum(axis=1) > 500]

这是一个供引用的链接以及我获得的示例数据。

Python Pandas - how to get top n values and the sum of all other values

最佳答案

首先按boolean indexing过滤然后使用nlargest:

df = df[df['Sessions'] < 500].nlargest(3, columns='Sessions')
#alternative for filtering
#df = df.query('Sessions < 500').nlargest(3, columns='Sessions')

或者sort_valueshead :

df = df[df['Sessions'] < 500].sort_values('Sessions', ascending=False).head(3)
<小时/>
print (df)
Browsers Sessions
0 Chrome 201
1 IE 136
2 Safari 101

编辑:

df = df.sort_values('Sessions', ascending=False)

print (df['Sessions'].cumsum())
0 201
1 337
2 438
3 474
4 486
5 492
Name: Sessions, dtype: int64

df = df[df['Sessions'].cumsum() < 450]
print (df)
Browsers Sessions
0 Chrome 201
1 IE 136
2 Safari 101

关于python - Python中通过一列的特定总和值选择前N行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54005535/

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