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

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

將 2 個相同的 pandas 數據框加入多級行鍵

將 2 個相同的 pandas 數據框加入多級行鍵

開滿天機 2023-08-22 16:06:09
我有 2 個具有相同索引和列的數據框。我需要將它們加入或連接到一個數據框中。生成數據的代碼如下:import pandas as pdsites = pd.Index(['AAA', 'BBB','CCC', 'DDD'], name='SITELIST')vvv = pd.DataFrame({'KK':[1,2,3,4],'GG':[2,3,4,5], 'RR':[6,5,4,3]}, index = sites)ttt = pd.DataFrame({'KK':[11,22,33,34],'GG':[23,33,34,35], 'RR':[26,25,24,23]}, index = sites)生成的數據框是print(vvv)          KK  GG  RRSITELIST            AAA        1   2   6BBB        2   3   5CCC        3   4   4DDD        4   5   3print(ttt)          KK  GG  RRSITELIST            AAA       11  23  26BBB       22  33  25CCC       33  34  24DDD       34  35  23當我使用 concat 通過以下代碼連接這兩個數據幀時:res2 = pd.concat([vvv, ttt], axis=0, keys=["VVV", "TTT"], names=['Sensor', 'Site'])我得到這個結果:print(res2)             KK  GG  RRSensor Site            VVV    AAA    1   2   6       BBB    2   3   5       CCC    3   4   4       DDD    4   5   3TTT    AAA   11  23  26       BBB   22  33  25       CCC   33  34  24       DDD   34  35  23我需要加入他們才能得到如下結果:              KK  GG  RRSite  SensorAAA   VVV      1   2   6      TTT     11  23  26BBB   VVV      2   3   5      TTT     22  33  25CCC   VVV      3   4   4      TTT     33  34  24DDD   VVV      4   5   3      TTT     34  35  23謝謝。
查看完整描述

1 回答

?
繁星點點滴滴

TA貢獻1803條經驗 獲得超3個贊

您可以df.swapleveldf.sort_index和 一起使用reindex

print(res2.swaplevel().sort_index(level=0).reindex(['VVV','TTT'],level=1))

? ? ? ? ? ? ?KK? GG? RR

Site Sensor? ? ? ? ? ??

AAA? VVV? ? ? 1? ?2? ?6

? ? ?TTT? ? ?11? 23? 26

BBB? VVV? ? ? 2? ?3? ?5

? ? ?TTT? ? ?22? 33? 25

CCC? VVV? ? ? 3? ?4? ?4

? ? ?TTT? ? ?33? 34? 24

DDD? VVV? ? ? 4? ?5? ?3

? ? ?TTT? ? ?34? 35? 23


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

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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