Как заменить значения столбцов в одном кадре на значения другого кадра по идентификатору в Pandas? - PullRequest
0 голосов
/ 14 февраля 2019

Есть много похожих вопросов, я пробовал их все, но они не работают так, как я хочу.Позвольте мне объяснить:

У меня есть два кадра данных df1 и df2.Форма df1 равна (10000,10), а форма df2 равна (6000,3).

Образец df1:

id      col1   col2    col3
sdfge    0       43     35
fgdge    0       34     353
dfgge   500     434     345
dsggh    43     34       345
bcbnn    23      0       86
gnncn    24      0       868
iopip    0       0       687

Образец df2

id      col1   col2  
sdfge    3453     453  
fgdge    23      345   
dsggh    44     357   
iopip    0      886  

Теперь я хочу заменить значения col1 и col2 на df1, используя значения из df2 (объединение id.

1 Ответ

0 голосов
/ 14 февраля 2019

Использование map:

df1['col1'] = (df1['id'].map(df2.set_index('id')['col1'])
                        .fillna(df1['col1'], downcast='infer'))
df1['col2'] = (df1['id'].map(df2.set_index('id')['col2'])
                        .fillna(df1['col2'], downcast='infer'))

print(df1)
      id  col1  col2  col3
0  sdfge  3453   453    35
1  fgdge    23   345   353
2  dfgge   500   434   345
3  dsggh    44   357   345
4  bcbnn    23     0    86
5  gnncn    24     0   868
6  iopip     0   886   687
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...