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

ありがとうございます、@マックスはとてもうまく動作します。 –

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

おかげで、それが動作します。 –

関連する問題