Pandas数据帧选择x的前5个,然后是y的前5个,z的前5个等

时间:2016-11-12 10:50:43

标签: python pandas dataframe rows

Name     Amount
---------------
Alice       100
Bob          50
Charlie     200
Alice        30
Charlie      10
Bob         300 
Charlie      55
Charlie      12

鉴于以上数据框我想按金额排序(这里不需要帮助) 然后为每个人选择前5个金额:Alice,Charlie等花费的前五个金额,并将其放入新的数据框中。 所有剩余的较小支出都将被忽略。

1 个答案:

答案 0 :(得分:2)

IIUC您可以使用nlargest()方法:

In [12]: top2 = df.groupby('Name').Amount.nlargest(2).reset_index().drop('level_1',1)

In [13]: top2
Out[13]:
      Name  Amount
0    Alice     100
1    Alice      30
2      Bob     300
3      Bob      50
4  Charlie     200
5  Charlie      55