Пользовательское объединение панд с условием key1 содержит key2 - PullRequest
0 голосов
/ 22 мая 2018

Я пытаюсь объединить два фрейма данных с условием, что ключ1 содержит ключ2, вот пример

df1

name         info
Bill Gates   Microsoft
Steve Jobs   Apple
Elon Musk    Tesla

df2

name        info
Bill        aaa
Kate        bbb
Steve       ccc

Я объединяю столбец с ключом 'name', результат, который я хочу получить:

df3

name          info         name     info
Bill Gates    Microsoft    Bill     aaa
Steve Jobs    Apple        Steve    ccc

, и в моем случае df1 является относительно небольшим с примерно600 записей, но df2 довольно большой, с примерно 2 миллионами записей, поэтому большое значение также имеет эффективность.

1 Ответ

0 голосов
/ 22 мая 2018

Переименовать вещи и объединить

rename_dict = {'name': 'full', 'info': 'company'}
df1.rename(columns=rename_dict).assign(
    name=lambda d: d.full.str.split().str[0]).merge(df2)

         full    company   name info
0  Bill Gates  Microsoft   Bill  aaa
1  Steve Jobs      Apple  Steve  ccc
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...