2014-10-02 3 views
1

У меня есть два DF,сочетание двух DF, панды

Первый DF

A B C 
1 1 3 
1 1 2 
1 2 5 
2 2 7 
2 3 7 

Второй DF

B D 
1 5 
2 6 
3 4 

В столбце B имеет то же значение в обоих ДФС. Какой самый простой способ добавить столбец D в соответствующие значения в первом df? Вывод должен быть:

A B C D 
1 1 3 5 
1 1 2 5 
1 2 5 6 
2 2 7 6 
2 3 7 4 

ответ

1

Выполнить «левый» merge в вашем случае на колонке «B»:

In [206]: 

df.merge(df1, how='left', on='B') 
Out[206]: 
    A B C D 
0 1 1 3 5 
1 1 1 2 5 
2 1 2 5 6 
3 2 2 7 6 
4 2 3 7 4 

Другой метод должен был бы установить «B» на ваш второй ДФ как индекс и затем позвоните по телефону map:

In [215]: 

df1 = df1.set_index('B') 
df['D'] = df['B'].map(df1['D']) 
df 
Out[215]: 
    A B C D 
0 1 1 3 5 
1 1 1 2 5 
2 1 2 5 6 
3 2 2 7 6 
4 2 3 7 4 
+0

Еще раз спасибо :-) – Guforu

Смежные вопросы