Панды, объединяющие два фрейма данных с разным количеством мультииндексов - PullRequest
0 голосов
/ 22 ноября 2018

Добро пожаловать, у меня простой вопрос, решение которого я не нашел.

У меня есть два кадра данных df1 и df2:

  • df1 содержит несколько столбцов и мультииндекс как year-month-week
  • df2 содержит мультииндекс year-week только с одним столбцом в df.

Я хотел бысоздать inner join из df1 и df2, соединяя 'year' и 'week'.


Я пытался сделать следующее:

df1['newcol'] = df1.index.get_level_values(2).map(lambda x: df2.newcol[x])

Который присоединяется только к месяцу (или году?), Есть ли способ расширить его, чтобы слияние было действительно правильным?

Заранее спасибо!

df1

df2

1 Ответ

0 голосов
/ 22 ноября 2018

В конце концов, я решил удалить мультииндекс и сделать хорошее старое внутреннее соединение двух столбцов, а затем воссоздать мультииндекс в конце.Вот фрагменты:

df = df.reset_index ()

df2 = df2.reset_index ()

df ['year'] = df ['year'].apply (int)

df2 ['year'] = df2 ['year']. apply (int)

df ['week'] = df ['week']. apply(int)

df2 ['week'] = df2 ['week']. apply (int)

result = pd.merge (df, df2, how = 'left', left_on= ['year', 'week'], right_on = ['year', 'week'])

result = result.set_index (['year', 'month', 'week', 'day«])

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...