【发布时间】:2021-03-24 12:28:04
【问题描述】:
我正在尝试合并两个具有相同级别 0 但不同级别 1 的分层级别的数据帧。合并函数似乎是最好用的,因为它像 SQL 一样工作,但我可能是错的。不管怎样,下面是两个数据框的视图。
df1:
201001 | 201002 | 201003
col1 col2 | col1 col2 | col1 col2
A 123 456 | 123 456 | ... ...
B 789 123 | 789 123 | ... ...
C 456 789 | 456 789 | ... ...
df2:
201001 | 201002 | 201003
col3 col4 col5 | col3 col4 col5 | col3 col4 col5
A 123 456 123 | 456 123 456 | 456 456 789
B 789 123 789 | 123 789 789 | 123 456 123
C 456 789 456 | 789 123 456 | 456 789 789
正如我所说,级别0是一样的,行级别的索引是一样的,唯一的区别是级别1。我想要的结果如下:
201001 | 201002
col1 col2 col3 col4 col5 | col1 col2 col3 col4 col5
A 123 456 123 456 123 | 123 456 456 123 456
B 789 123 789 123 789 | 789 123 123 789 789
C 456 789 456 789 456 | 456 789 789 123 456
然后,要合并的键应该是级别 0 和行索引,而级别 1 上的列应该是附加的。我尝试使用 pd.merge(df1, df2, how='left', left_index=True, right_index=True) 和其他参数组合,但唯一的结果是数据帧只是附加在axis = 1上。 关于如何获得正确结果的任何想法?
【问题讨论】:
标签: pandas dataframe multi-index