Сравните 2 кадра данных с проверкой идентификатора. Значение столбца находится в другом столбце данных.Если значение есть, измените соответствующий столбец - PullRequest
0 голосов
/ 20 сентября 2018

У меня есть ситуация, у меня есть 2 Dataframes в python

df1 = {
    'A':['1','2','3'],
    'B':['c','d','e']
    },

df2 = {
    'X':['2','1'],
    'Y':['n','m']   
}

Теперь, если столбец A соответствует любому значению в столбце X, я хочу, чтобы B имел соответствующее значение Y в этом случае:

df1 = {
    'A':['1','2','3'],
    'B':['m','n','e']
    }

Пожалуйста, предложите

1 Ответ

0 голосов
/ 20 сентября 2018

Используйте map по серии created по set_index и замените пропущенные значения на fillna:

df1['B'] = df1['A'].map(df2.set_index('X')['Y']).fillna(df1['B'])
print (df1)
   A  B
0  1  m
1  2  n
2  3  e
...