python - Pandas Groupby Agg 函数中的列顺序

标签 python pandas

是否有自动维护返回数据框的列(“C”、“B”、“A”)顺序的方法?

g = df.groupby(['people'])
g['people'].agg({'C' : len,
                 'B' : len,
                 'A' : len,
                })

这将返回列 A、B、C 而不是 C、B、A。

我只能找到示例,但找不到 agg 函数本身的文档。

这似乎是一种解决方法:

g = df.groupby(['people'])
g['people'].agg({'C' : len,
                 'B' : len,
                 'A' : len,
                }).reindex_axis(['C','B','A'], axis=1)

最佳答案

OrderedDict 与 pandas-0.18.0-py2.7 的配合令人惊讶:

from collections import OrderedDict
g = df.groupby(['people'])
g['people'].agg( OrderedDict([
                 ('C' , len),
                 ('B' , len),
                 ('A' , len),
                ]) )

关于python - Pandas Groupby Agg 函数中的列顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26938827/

相关文章:

python - Django 测试 : no data in temporary database file

python - 如何从 PNG 图像中删除第 4 个 channel

python - 检查包含字符串和整数的 pandas 系列中的值时出现令人困惑的行为

python - Pandas 数据框中的零除法算法

python - 流式传输MapReduce文件时出错

jquery - Django 自动完成灯小部件更改表单字段名称

python - 使用 Pandas 聚合数据并保留表结构和列名的更好方法

python - 将具有 x 列的数据帧插入 <x 列

python - 如何将填充的 0 行添加到 Pandas 数据框?

python - 如何在 pandas 中为 columns 参数进行多列转换