Сначала отфильтруйте по 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_values
с head
:
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
EDIT:
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