亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Pandas MultiIndex:如何在MuldoIndex列下對齊列

Pandas MultiIndex:如何在MuldoIndex列下對齊列

阿晨1998 2022-08-16 18:40:49
我的初始數據幀如下所示: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)

http://img1.sycdn.imooc.com//62fb74520001699a06200272.jpg

查看完整回答
反對 回復 2022-08-16
  • 1 回答
  • 0 關注
  • 149 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號