2016-12-26 35 views
3

我有一个熊猫数据帧像这样的总和:Python的大熊猫 - 如何获得前n值以及所有其他值

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

和我需要的是显示前3名的价值观和总结,其余为“其他':

Browsers  Sessions 
Chrome   201 
IE    136 
Safari   101 
Other   54 

任何想法如何做到这一点?

回答

4

试试这个:

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 
+0

谢谢,@MaxU它工作得很好。 –

3

可以有更好的方法来做到这一点。但是,一种方式可以是这样的:

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 

输出:

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

谢谢,它的工作原理。 –

相关问题