2016-12-26 41 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

謝謝,它的工作原理。 –

相關問題