根据pandas groupby sort within groups的回答,为了对每个组内的观察结果进行排序,需要对第一个 groupby
的结果进行第二个 groupby
。为什么需要第二个 groupby
?我会假设在运行第一个 groupby
之后观察已经被分组,并且所需要的只是一种枚举这些组的方法(并运行 apply
和 顺序
)。
最佳答案
因为一旦在 groupby 之后应用函数,结果就会组合回正常的未分组数据框。使用 groupby 和类似 sort 的 groupby 方法应该被认为是 Split-Apply-Combine operation
groupby 拆分原始数据框并将该方法应用于每个组,但随后将结果再次隐式组合。
在另一个问题中,他们可以反转操作(先排序),然后不必使用两个 groupby。他们可以这样做:
df.sort(['job','count'],ascending=False).groupby('job').head(3)
关于python - Pandas :按组对观察结果进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36073984/