Я применил ответ с наибольшим количеством голосов здесь , чтобы объединить следующие фреймы данных:
>>> df
param1 0 1 2
param2 a x d a
0 user1 user2
1 2 6 0 1 0 0
2 4 13 0 0 0 3
3 21 76 2 0 1 0
и
>>> df2
0 user1 user2 param3 param4
1 2 6 10 'a'
2 5 18 15 'b'
3 21 76 13 'a'
с помощью
df2 = df2.columns = pd.MultiIndex.from_product([eadf.columns],[''],[''])
Слияние дает
>>> df1.merge(df2, on=['user1','user2'], how='outer')
user1 user2 param3 param4 0 1 2
a x d a
0 2 6 10 'a' 0 1 0 0
1 4 13 NaN NaN 0 0 0 3
2 5 18 15 'b' NaN NaN NaN NaN
2 21 76 13 'a' 2 0 1 0
, которая является правильной таблицей - за исключением того, что теперь у меня нет имен MultiIndex param1
и param2
. Как мне вернуть эти имена обратно?