如何在Pandas Pivot表中获得交替值colums?

时间:2017-09-29 20:59:36

标签: python pandas report pivot-table

我想从Pandas DataFrame生成一个报告,该报告使用交替值列而不是交替使用主列。例如,给定此代码:

RETURN

我得到了这个输出:

import pandas as pd
data = [('a1', 'b1', 1, 2),
        ('a1', 'b2', 3, 4),
        ('a1', 'b3', 5, 6),
        ('a2', 'b1', 7, 8),
        ('a2', 'b2', 9, 10),
        ('a2', 'b3', 11, 12)]

df = pd.DataFrame(data, columns=['A', 'B', 'X', 'Y'])
print(pd.pivot_table(df, index='A', columns=['B']))

但是,我更喜欢这样的事情:

    X         Y        
B  b1 b2  b3 b1  b2  b3
A                      
a1  1  3   5  2   4   6
a2  7  9  11  8  10  12

任何合理的方法来实现这一目标?

1 个答案:

答案 0 :(得分:1)

首先要做的是交换MultiIndex数据帧上的级别。然后你必须对它进行排序。

In [1]: pd.pivot_table(df, index='A', columns=['B']).swaplevel(axis=1).sort_index(axis=1)
Out[1]:
B  b1    b2      b3
     X  Y  X   Y   X   Y
A
a1  1  2  3   4   5   6
a2  7  8  9  10  11  12