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

Допустим, df_1 выглядит следующим образом:

col_1 | col_2 | col_3 | ...
12338 | MD   | ...
13438 | LG   | ...
62248 | SM   | ...
92338 | SI   | ...
32818 | SM   | ...
.
.
.

Кроме того, вот df_2:

col_1 | MD | LG | SM | SI
12338 | 10 | 29 | 8  | 7
12339 | 15 | 26 | 18 | 17
13438 | 78 | 18 | 77 | 1670
.
.
.

Цель состоит в том, чтобы найти целевое значение для каждой строки в df_1 на основе df_2 и col_1 и col_2. Например, для первой строки df_1 целевое значение будет 10, потому что col_1 - 12338 и с использованием столбца MD в df_2.

Для второй строки df_2 целевое значение будет 18, потому что col_1 равно 13438 и используя столбец LG в df_2.

col_1 | col_2 | Target | col_3 | ...
12338 | MD    | 10     | ...
13438 | LG    | 18     | ...
.
.
.

Я хочу выполнить описанный выше процесс для очень большого фрейма данных.

Я знал, что могу сделать это с помощью слияния или даже с помощью некоторых if условий, но я ищу очень эффективный и новый способ, который будет слишком быстрым. Приветствуются любые новаторские идеи.

1 Ответ

2 голосов
/ 19 июня 2020

Проверьте с помощью lookup

df1['Target']=df2.set_index('col_1').lookup(df1.col_1, df1.col_2)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...