DataFrame agg系列

时间:2019-02-03 15:29:19

标签: python pandas

我想将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,但不知道如何使它完成。

2 个答案:

答案 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