简体   繁体   English

Python Pandas - 如何获得前n个值和所有其他值的总和

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

I have a Pandas DataFrame like this: 我有一个像这样的Pandas DataFrame:

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

and what I need is display top 3 values and sum the rest as 'other': 我需要的是显示前3个值并将其余值相加为“其他”:

Browsers        Sessions
Chrome          201
IE              136
Safari          101
Other           54  

Any ideas how this could be done? 有什么想法可以做到这一点?

Try this: 尝试这个:

In [39]: result = df.nlargest(3, columns='Sessions')

In [40]: result.loc[len(result)] = ['Others', df.loc[~df.Browsers.isin(result.Browsers), 'Sessions'].sum()]

In [41]: result
Out[41]:
  Browsers  Sessions
0   Chrome       201
1       IE       136
2   Safari       101
3   Others        54

There can be better ways to do this. 可以有更好的方法来做到这一点。 But one way can be like this: 但有一种方法可以是这样的:

df2 = df.sort_values('Sessions', ascending=False)[:3]
s = df.sort_values('Sessions', ascending=False).Sessions[3:].sum()
df3.loc[len(df2)]=['Others', s]
print df3

Output: 输出:

  Browsers  Sessions
0   Chrome       201
1       IE       136
2   Safari       101
3   Others        54

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM