Pandas Pivot - 交换'列'和'价值'

时间:2018-06-14 15:29:31

标签: python-3.x pandas pivot

我有一个基于以下代码的工作轴:

pd.pivot_table(df,
index=["row_a","row_b"], 
columns=["col_a"],
values=["metric_a", "metric_b"],
aggfunc={"metric_a":np.max, "metric_b":np.sum})

基于该代码,我正确地收到以下输出。

current_pivot

但是,我想基本上将列与指标交换以接收以下输出。这可能吗?

desired_pivot

1 个答案:

答案 0 :(得分:4)

我认为您需要的是在初始数据透视后调用pandas.DataFrame.swaplevel,然后对列进行排序以将顶层分组(level = 0):

# Assuming df holds the result of the pivot
df.swaplevel(0, 1, axis=1).sort_index(axis=1)