python - Pandas :按组对观察结果进行排序

标签 python pandas

根据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/

相关文章:

python - 数据帧拆分并转置,使最左边的值成为标题

python - Python 中的质数生成器

python - 如何在 PyQt5 中向 QLabel 添加信号?

python - 将数据框中的行的一部分向右移动?

python - 使用reduce组合不同数据帧之间多列的 bool 运算

pandas - 为什么我不能删除默认的 Pandas plot logy yticklabels?

python - 在Django中,如何获取通过外键连接的子对象?

python - 方法分配和对象

python - yfinance 下载数据时返回错误

python - 将 pandas 中的行相乘并添加到迭代中