Python, как взаимодействовать два разных фрейма данных с помощью поиска или .map - PullRequest
0 голосов
/ 30 сентября 2019

Python, как взаимодействовать два разных фрейма данных в одном цикле for

Привет, ребята, поэтому у меня 2 фрейма данных.

data-frame1 = содержит идентификатор a Стоимость

data-frame2 = содержит идентификатор

Я хочу создать цикл for, который найдет идентификатор и вернет Cost для data-frame2 в качестве нового столбца.

Проблемы .. они делаютне имеет некоторой длины

AL также для цикла не находит идентификаторы

Таким образом, они оба будут иметь данные, например:

data-frame1 = содержит идентификатор и стоимость data-frame2 = содержитID и стоимость
# data-frame 1

cw.head()

    campaignid  Month   

0   31664745    2019|08 
1   85264521    2019|08 
2   85264521    2019|08 
3   85264521    2019|08 
4   31664745    2019|08 
5   31664745    2019|08 
6   31664745    2019|08 
7   85264521    2019|08 
8   31664745    2019|08 
9   31664745    2019|08 
10  85264521    2019|08 



# data-frame 2

g_spend.head()

    campaignid  cpl

0   31664745    41  
1   85264521    55


Моя попытка

for c in cw.campaignid:

    if c == range(len(g_spend.campaignid)):
        cw["cpl"] = g_spend.cpl_to_update

    else:
        print("error, bc all values should match")

Ожидаемый результат

# data-frame 1

cw.head()

    campaignid  Month    cpl

0   31664745    2019|08  41
1   85264521    2019|08  55
2   85264521    2019|08  55
3   85264521    2019|08  55
4   31664745    2019|08  41
5   31664745    2019|08  41
6   31664745    2019|08  41
7   85264521    2019|08  55
8   31664745    2019|08  41
9   31664745    2019|08  41
10  85264521    2019|08  55

1 Ответ

1 голос
/ 30 сентября 2019

Если campaignid уникален в g_spend, вы можете использовать map для обновления других данных:

cw['cpl'] = cw['campaignid'].map(g_spend.set_index('campaignid')['cpl'])

Вывод:

    campaignid    Month  cpl
0     31664745  2019|08   41
1     85264521  2019|08   55
2     85264521  2019|08   55
3     85264521  2019|08   55
4     31664745  2019|08   41
5     31664745  2019|08   41
6     31664745  2019|08   41
7     85264521  2019|08   55
8     31664745  2019|08   41
9     31664745  2019|08   41
10    85264521  2019|08   55
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...