У меня есть два кадра данных. Каждый имеет двухуровневый многоиндексный индекс. Первый уровень одинаков в каждом, но второй уровень отличается. Я хотел бы объединить фреймы данных и в итоге получить фрейм данных с трехуровневым многоиндексным индексом, где записи из первого фрейма данных будут иметь «NaN» на третьем уровне индекса, а записи из второго фрейма данных будут иметь «NaN» на втором уровне индекса. Вместо этого я получаю фрейм данных с двухуровневым индексом, где значения на втором уровне каждого фрейма данных помещаются в один и тот же уровень индекса, который принимает имя второго уровня в первом фрейме данных (см. Код ниже).
Есть ли хороший способ сделать это? Я мог бы превратить второй уровень каждого индекса в столбец, объединить, а затем поместить их обратно в индекс, но это кажется мне окольным путем.
df1 = pd.DataFrame({'index-1':['a1','b1','c1','d1'], 'index-2':['a2','b2','c2','d2'], 'values':[1,2,3,4]})
df2 = pd.DataFrame({'index-1':['a1','b1','c1','d1'], 'index-3':['a3','b3','c3','d3'], 'values':[5,6,7,8]})
df1.set_index(['index-1','index-2'], inplace=True)
df2.set_index(['index-1','index-3'], inplace=True)
pd.concat([df1, df2])
Спасибо!