我的初始數據幀如下所示:import pandas as pddf = pd.DataFrame(data=[['Core','PM2',1234,'Direct','2019-11-08 00:00:00','2019-11-08 00:59:59',3.300,'V'],['Long Term','Wind',1111,'Direct','2019-11-09 00:00:00','2019-11-09 00:59:59',0.00123,'V']], columns=['Program','Parameter','Station','Method','Start','End','Measurement','Flag'])df Program Parameter Station Method Start End Measurement Flag0 Core PM2 1234 Direct 2019-11-08 00:00:00 2019-11-08 00:59:59 3.30000 V1 Long Term Wind 1111 Direct 2019-11-09 00:00:00 2019-11-09 00:59:59 0.00123 V然后,我索引數據幀:df_index = df.set_index(['Start','End','Measurement','Flag'])df_index這給了我: Program Parameter Station Method Start End Measurement Flag 2019-11-08 00:00:00 2019-11-08 00:59:59 3.30000 V Core PM2 1234 Direct2019-11-09 00:00:00 2019-11-09 00:59:59 0.00123 V Long Term Wind 1111 Direct然后,我為列創建一個多索引:df_columns = pd.MultiIndex.from_frame(df_index[['Program','Parameter','Station','Method']])然后,我使用 MultiIndex 創建一個新的數據幀:data = pd.DataFrame(df_index, index=df_index.index, columns=df_columns)data這給了我: Program Core Long Term Parameter PM2 Wind Station 1234 1111 Method Direct Direct Start End Measurement Flag 2019-11-08 00:00:00 2019-11-08 00:59:59 3.30000 V NaN NaN2019-11-09 00:00:00 2019-11-09 00:59:59 0.00123 V NaN NaN
1 回答

POPMUISE
TA貢獻1765條經驗 獲得超5個贊
您可以嘗試一系列堆棧/取消堆棧:
import pandas
df = pd.DataFrame(data=[['Core','PM2',1234,'Direct','2019-11-08 00:00:00','2019-11-08 00:59:59',3.300,'V'],['Long Term','Wind',1111,'Direct','2019-11-09 00:00:00','2019-11-09 00:59:59',0.00123,'V']], columns=['Program','Parameter','Station','Method','Start','End','Measurement','Flag'])
df_index = df.set_index(['Start','End', 'Program','Parameter','Station','Method'])
df_index.unstack([-4, -3, -2, -1]).stack(-5).unstack(-1)
添加回答
舉報
0/150
提交
取消