记一个pandas 分组之后.head()返回的数据问题

 

 

 

 

 

意思是: 在0.12版本中, pandas分组之后内部会按照组进行排序,取.head()即可看到, 但是0.13之后不再有排序,而是按照本来的顺序进行排序的。所以在0.13之后如果要取分组之后的前N行数据,就必须要先分组之后用apply函数之后才会讲组排序,然后取.head(N)才能取到想要的数据。 例如:

 

 

但是如果只是求按某列的从大到小顺序取前N 的话,可以用 .nlargest()函数。如果要从小到大排序的话,就用.nsmallest()

例如,以上按等级分组,取金额前10,

data.groupby(['等级'],as_index=False).apply(lambda x: x.nlargest(10, '购买金额')).head(100)

  

 

posted @ 2021-11-20 22:13  脱离低级趣味  阅读(211)  评论(0编辑  收藏  举报