Как сопоставить форму столбца 1 df для другого df, проверив значение в 2 столбцах - PullRequest
0 голосов
/ 06 ноября 2019

Как сопоставить от 1 столбца до 2 столбцов ??

  • Цель состоит в том, чтобы сопоставить стоимость из таблицы REF с данными по идентификатору.
  • Проблема .map justсравните 1 столбец с 1 столбцом

Данные сбиты с толку, и для некоторых строк есть имена идентификаторов, а не идентификаторы. Я мог бы создать новую REF-таблицу, чтобы заменить эти id_names на id, проблема в том, что их так много ..

Таблица Reff

google =

id   id_name      cost

154  campaign1    15
155  campaign2    12
1566  campaign33  12
158  campaign4    33

Данные

cw = 

id  

154
155
campaign1    
campaign33
1566
158
campaign4

Желаемый вывод


cw =

id            cost

154            15
155            12
campaign1      15
campaign33     12
1566           12
158            33
campaign4      33

Что я сделал ..

# Just work for one column

cw['cost'] = cw['id'].map(google.set_index('id')['cost'])


1 Ответ

1 голос
/ 06 ноября 2019

Вы можете melt и карта:

map_series = google.melt(id_vars='cost').set_index('value')['cost']

cw['cost'] = cw['id'].map(map_series)
...