開(kāi)滿天機(jī)
2023-08-22 16:06:09
我有 2 個(gè)具有相同索引和列的數(shù)據(jù)框。我需要將它們加入或連接到一個(gè)數(shù)據(jù)框中。生成數(shù)據(jù)的代碼如下: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)生成的數(shù)據(jù)框是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當(dāng)我使用 concat 通過(guò)以下代碼連接這兩個(gè)數(shù)據(jù)幀時(shí):res2 = pd.concat([vvv, ttt], axis=0, keys=["VVV", "TTT"], names=['Sensor', 'Site'])我得到這個(gè)結(jié)果: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我需要加入他們才能得到如下結(jié)果: 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 回答

繁星點(diǎn)點(diǎn)滴滴
TA貢獻(xiàn)1803條經(jīng)驗(yàn) 獲得超3個(gè)贊
您可以df.swaplevel
與df.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
添加回答
舉報(bào)
0/150
提交
取消