我想将DataFrame.agg的输出转换为一系列,其中索引是列名和agg函数名的组合。
看到我有
In [132]: df = pd.DataFrame({
...: col: np.random.rand(5) for col in 'abc'
...: })
In [133]: out = df.agg(['sum', 'min', 'max'])
In [134]: out
Out[134]:
a b c
sum 2.898835 2.767717 2.270150
min 0.234784 0.492247 0.164680
max 0.913080 0.678060 0.773441
Out喜欢将输出转换为索引为a_sum, a_min, a_max, b_sum, b_min, b_max ...
我看过pivot
,但不知道如何使它完成。
答案 0 :(得分:1)
您可以堆叠或融合数据并加入索引
EnumhMap
答案 1 :(得分:0)
自从OP询问以来,这是使用melt
的一种方法:
from itertools import product
ind = [''.join([x[1], '_', x[0]]) for x in list(product(list(out), out.index.tolist()))]
out = out.melt()
out.variable = ind