Нечеткое соответствие двух фреймов данных на основе столбца значений списка - PullRequest
0 голосов
/ 18 июня 2020

У меня есть два Dataframes, которые я пытаюсь объединить по совпадению со значениями в столбце. Соответствующие столбцы - header1 в Df1 и header2 в Df2 (значение - list). Я ищу адаптированный подход.

Df1:                                          Df2:
|--------------|---------------|              |--------------|------------------------|       
|      id_1    |     header1   |              |      id_2    |    header2             |
|--------------|---------------|              |--------------|------------------------|
|      112     |      item1    |              |      32      |['item1','item2',...]   |
|--------------|---------------|              |--------------|------------------------|
|      56      |      mass     | 
|--------------|---------------|

Требуемые результаты:

Df_merged:                                       
|--------------|---------------|--------------|------------------------|       
|      id_1    |     header1   |      id_2    |    header2             |
|--------------|---------------|--------------|------------------------|
|      112     |      item1    |      32      |['item1','item2',...]   |
|--------------|---------------|--------------|------------------------|

Кто-нибудь знает, как объединить эти два фрейма данных? Я совершенно не знаю, как с этим справиться. Заранее большое спасибо.

1 Ответ

1 голос
/ 18 июня 2020

Используйте DataFrame.explode с переназначением header2 на header1, чтобы избежать потери исходного столбца header2, а затем используйте DataFrame.merge:

df = df1.merge(df2.assign(header1 = df2['header2']).explode('header1'), on='header1')
...