[英]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.