我有 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.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
添加回答
举报
0/150
提交
取消