记一个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)

  

你的时间用在哪里决定你成为一个什么样的人。
原文地址:https://www.cnblogs.com/yc3110/p/15582805.html