如何按值名称对数据透视表 table 中的值进行排序

How to sort values in pivot table by values names

你能帮我对值的名称进行排序吗?

我有构成 Table 1:

的代码
df1 = pd.pivot(data=df_selected, index='source', columns='ds', values=['y','percent_diff'])
df1 = df1.swaplevel(0,1, axis=1).sort_index(axis=1, ascending=False)#.reset_index()
df1 = df1.sort_values([df1.columns[0]], ascending=False)

因此,(2022-02-20, y), (2022-02-20, percent) 是 table 中的列 python 并且 source 是一个索引。

然后我发送了我的数据集的提取数据,这些数据是由代码生成的:

我想交换 ypercent_diff。请帮助我。

使用DataFrame.reindex:

mux = pd.MultiIndex.from_product([pd.date_range('2022-01-01', periods=3),
                                  ['y','rolling', 'percent_diff','abs_diff'], 
                                  ])
df = pd.DataFrame(columns=mux, index=range(5))

df = df.reindex(['percent_diff','rolling', 'y','abs_diff'], axis=1, level=1)
print (df)
    2022-01-01                         2022-01-02                        \
  percent_diff rolling    y abs_diff percent_diff rolling    y abs_diff   
0          NaN     NaN  NaN      NaN          NaN     NaN  NaN      NaN   
1          NaN     NaN  NaN      NaN          NaN     NaN  NaN      NaN   
2          NaN     NaN  NaN      NaN          NaN     NaN  NaN      NaN   
3          NaN     NaN  NaN      NaN          NaN     NaN  NaN      NaN   
4          NaN     NaN  NaN      NaN          NaN     NaN  NaN      NaN   

    2022-01-03                        
  percent_diff rolling    y abs_diff  
0          NaN     NaN  NaN      NaN  
1          NaN     NaN  NaN      NaN  
2          NaN     NaN  NaN      NaN  
3          NaN     NaN  NaN      NaN  
4          NaN     NaN  NaN      NaN