首页 > 解决方案 > 将标题转为行

问题描述

我有一个 2 行作为标题的 excel 文件,如下所示:

          Day1          Day2        
             X    Y   Z    X   Y   Z
product1   10   12   5   18  22   6
product2    9  100  88  123   4  56

如果我用熊猫阅读这个文件,我该怎么做才能让它看起来像这样?

在此处输入图像描述

标签: pythonpandas

解决方案


这是如何做到的:

df = pd.read_excel('data_to_pivot.xlsx', index_col=0, header=[0,1])
print(df)
          Day1          Day2        
             X    Y   Z    X   Y   Z
product1   10   12   5   18  22   6
product2    9  100  88  123   4  56
df = df.unstack().reset_index()
df = df.rename(columns={'level_0': 'Day'})
df.Day = df.Day.str.replace('Day', '')

df = df.pivot_table(0, ['level_2', 'Day'], 'level_1')
df = df.reset_index(level=1)
df.index.name = None
df.columns.name = None
print(df)
          Day    X    Y   Z
product1   1   10   12   5
product1   2   18   22   6
product2   1    9  100  88
product2   2  123    4  56

推荐阅读