У меня есть данные Excel в формате ниже
Time A Time B NAME A NAME B NAME C
Type A Type B Type C
Celcius Meters Kgs
2019-03-01 00:00:00 2019-02-28 23:59:55.560 8.0285 410.1051 410.5469
2019-03-01 00:00:10 2019-03-01 00:00:05.776 8.0439 410.1051 410.5938
2019-03-01 00:00:20 2019-03-01 00:00:14.995 8.0439 410.2134 410.6875
2019-03-01 00:00:30 2019-03-01 00:00:25.226 8.0439 410.0781 410.5469
2019-03-01 00:00:40 2019-03-01 00:00:35.444 8.0285 410.0239 410.5312
2019-03-01 00:00:50 2019-03-01 00:00:45.676 8.0439 410.1592 410.609
Который я хочу преобразовать в панды, как показано ниже
Time A, Time B, Name , Type , Unit , Value
Я попробовал ниже код
import pandas as pd
xl = pd.ExcelFile('testx.xlsm')
df = xl.parse(xl.sheet_names[0])
df1 = df.set_index(['Time A', 'Time B'])
df1.columns = [df1.columns,df1.iloc[0], df1.iloc[1]]
df1 = df1.iloc[2:].reset_index(drop=False)
df1.unstack(level=-1)
Я попробовал приведенный ниже код и получил что-то лучшее, но интенсивное использование памяти.
xl = pd.ExcelFile('test2.xlsm', )
df = xl.parse(xl.sheet_names[0],index_col=[0,1], header=[0,1,2] )
df1 = df.stack().stack().stack()
ожидаемый результат такой
Time A Time B name Type Unit Value
2019-03-01 00:00:00 2019-02-28 23:59:55.560 NAME A Type A Celcius 8.0285
NAME B Type B Meters 410.1051
NAME C Type C Kgs 410.5469