Python 将数据帧转换为多索引数据帧

Python 将数据帧转换为多索引数据帧,python,pandas,dataframe,Python,Pandas,Dataframe,我有一个现有的数据框,其中包含国家,天气,温度,日期从CSV文件提取。 我想将数据框转换为多索引,并导出到excel文件 df = pd.read_csv('Country.csv') df Out[47]: Country Weather Temp Date 0 Korea Sunny 30 20201201 1 Japan Rainny 26 20201201 2 England Sunny 27 2020

我有一个现有的数据框,其中包含国家,天气,温度,日期从CSV文件提取。 我想将数据框转换为多索引,并导出到excel文件

df = pd.read_csv('Country.csv')

df
Out[47]: 
     Country Weather  Temp      Date
0      Korea   Sunny    30  20201201
1      Japan  Rainny    26  20201201
2    England   Sunny    27  20201201
3   Malaysia  Rainny    25  20201201
4      Korea   Sunny    30  20201202
5      Japan  Rainny    26  20201202
6    England   Sunny    27  20201202
7   Malaysia  Rainny    25  20201202
8      Korea  Rainny    30  20201203
9      Japan  Rainny    26  20201203
10   England  Rainny    27  20201203
11  Malaysia  Rainny    28  20201203
我曾尝试使用
df.set_索引(['Country','Date'])
,但它不起作用

输出版本

试试这个:

df.set_index(['Country', 'Date']).unstack(1).swaplevel(0,1, axis=1).sort_index(axis=1)
输出:

Date     20201201         20201202         20201203        
             Temp Weather     Temp Weather     Temp Weather
Country                                                    
England        27   Sunny       27   Sunny       27  Rainny
Japan          26  Rainny       26  Rainny       26  Rainny
Korea          30   Sunny       30   Sunny       30  Rainny
Malaysia       25  Rainny       25  Rainny       28  Rainny

Try:
df=df.set_index(['Country','Date'])
我试图使用
pivot_表来实现这一点,但它不想聚合'Weather'列,即使将其更改为分类数据类型。@wii
df.pivot('Country','Date',['Weather','Temp'])。swaplevel(0,1,axis=1)。排序_index(axis=1)
@wii是的,pivot_表不会在一个步骤中工作,因为pivot_表只接受一个“值”列,而不接受值列列表。