Как объединить фреймы данных с мультииндексами без удаления индексов?Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Как объединить фреймы данных с мультииндексами без удаления индексов?

Сообщение Anonymous »

У меня есть два фрейма данных, каждый из которых имеет MultiIndex. Я хочу объединить их по общему индексу. В результате нестандартные индексы исчезнут. Как этого избежать?
Настроить:

Код: Выделить всё

import pandas as pd
tuples1 = [(1,'a'), (1, 'b'), (2, 'a'), (2, 'b')]
df1 = pd.DataFrame(data={'x':[1,2,3,4]}, index=pd.MultiIndex.from_tuples(tuples1,names=['number', 'letter']))

tuples2 = [(1, 'red'), (1, 'blue'), (2, 'red'), (2, 'blue')]
df2 = pd.DataFrame(data={'y':[10,20,30,40]}, index=pd.MultiIndex.from_tuples(tuples2,names=['number', 'color']))
При этом создаются два кадра данных:

Код: Выделить всё

               x
number letter
1      a       1
b       2
2      a       3
b       4

y
number color
1      red    10
blue   20
2      red    30
blue   40
Это мой код для внешнего объединения их по числу:

Код: Выделить всё

merged = df1.merge(df2, on=['number'], how='outer')
Вот что я получаю:

Код: Выделить всё

        x   y
number
1       1  10
1       1  20
1       2  10
1       2  20
2       3  30
2       3  40
2       4  30
2       4  40
Вот чего я хочу:

Код: Выделить всё

                     x   y
number letter color
1      a      red    1  10
blue   1  20
b      red    2  10
blue   2  20
2      a      red    3  30
blue   3  40
b      red    4  30
blue   4  40
Я просмотрел множество других сообщений StackOverflow, но не нашел соответствующего ответа.

Подробнее здесь: https://stackoverflow.com/questions/791 ... ng-indexes
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»