Python 如何合并多级(即多索引)数据帧?

Python 如何合并多级(即多索引)数据帧?,python,pandas,dataframe,Python,Pandas,Dataframe,python/panda在“cell1”和“cell2”下的“t”列的多级数据帧上合并的方式是什么 现在,当我尝试在“t”上进行合并时,python REPL将出错 ddf = pd.merge(df1, df2, on='t', how='outer') 处理这个问题的好方法是什么 一种解决方案是从数据帧中删除顶层(例如,cell_1和cell_2),然后合并 pd.merge(df1, df2, left_on=[('cell 1', 't')], right_on=[('cell 2',

python/panda在“cell1”和“cell2”下的“t”列的多级数据帧上合并的方式是什么

现在,当我尝试在
“t”
上进行合并时,python REPL将出错

ddf = pd.merge(df1, df2, on='t', how='outer')

处理这个问题的好方法是什么

一种解决方案是从数据帧中删除顶层(例如,
cell_1
cell_2
),然后合并

pd.merge(df1, df2, left_on=[('cell 1', 't')], right_on=[('cell 2', 't')])
如果需要,可以保存这些列以在合并后恢复它们

c1 = df1.columns
c2 = df2.columns
df1.columns = df1.columns.droplevel()
df2.columns = df2.columns.droplevel()
df_merged = df1.merge(df2, on='t', how='outer', suffixes=['_df1', '_df2'])
df1.columns = c1
df2.columns = c2

>>> df_merged
   t  sb_df1  sb_df2
0  0       1     NaN
1  2       3       6
2  1     NaN       5

谢谢它融合得很好。
c1 = df1.columns
c2 = df2.columns
df1.columns = df1.columns.droplevel()
df2.columns = df2.columns.droplevel()
df_merged = df1.merge(df2, on='t', how='outer', suffixes=['_df1', '_df2'])
df1.columns = c1
df2.columns = c2

>>> df_merged
   t  sb_df1  sb_df2
0  0       1     NaN
1  2       3       6
2  1     NaN       5