Pandas pivot_table 列 header 顺序
Pandas pivot_table column header Order
我正在尝试用 pandas 制作一个枢轴 table 并显示它。
我正在使用来自 https://eforexcel.com/wp/downloads-18-sample-csv-files-data-sets-for-testing-sales/
的数据集 50000 Sales Records
这是它的样子
这是我用来生成数据透视表的代码 table。
index = ['Region', 'Country']
columns = ['Item Type']
values = ['Order ID', 'Units Sold']
aggfunc = ['count', 'mean']
aggfunc = {i: j for i, j in zip(values, aggfunc)}
df_ = df[list(set(index + columns + values))]
df__ = pd.pivot_table(
data=df_,
index=index,
values=values,
columns=columns,
aggfunc=aggfunc,
).reset_index()
df__
这是我得到的结果。这里,headers 列的顺序是 values -> columns
有什么方法可以得到 columns -> values
形式的结果,即
谢谢
使用 DataFrame.swaplevel
进行排序 MultiIndex
:
df__ = pd.pivot_table(
data=df_,
index=index,
values=values,
columns=columns,
aggfunc=aggfunc,
).swaplevel(1,0, axis=1)
.sort_index([0,1], ascending=[True, False])
.reset_index()
我正在尝试用 pandas 制作一个枢轴 table 并显示它。
我正在使用来自 https://eforexcel.com/wp/downloads-18-sample-csv-files-data-sets-for-testing-sales/
的数据集50000 Sales Records
这是它的样子
这是我用来生成数据透视表的代码 table。
index = ['Region', 'Country']
columns = ['Item Type']
values = ['Order ID', 'Units Sold']
aggfunc = ['count', 'mean']
aggfunc = {i: j for i, j in zip(values, aggfunc)}
df_ = df[list(set(index + columns + values))]
df__ = pd.pivot_table(
data=df_,
index=index,
values=values,
columns=columns,
aggfunc=aggfunc,
).reset_index()
df__
这是我得到的结果。这里,headers 列的顺序是 values -> columns
有什么方法可以得到 columns -> values
形式的结果,即
谢谢
使用 DataFrame.swaplevel
进行排序 MultiIndex
:
df__ = pd.pivot_table(
data=df_,
index=index,
values=values,
columns=columns,
aggfunc=aggfunc,
).swaplevel(1,0, axis=1)
.sort_index([0,1], ascending=[True, False])
.reset_index()