Concat два кадра данных, где один кадр данных является подмножеством другого - PullRequest
1 голос
/ 12 октября 2019

У меня есть два фрейма данных

DF1

 x y z   
 0 0 0  
 1 1 1  
 2 2 2  
 3 3 3  
 4 4 4  
 5 5 5  

DF2

 x y z    
 1 1 10   
 4 4 20  

Я хочу объединить эти два фрейма данных, который обновляет фрейм данных 1

Результат должен быть

 x y z   
 0 0 0  
 1 1 10  
 2 2 2  
 3 3 3  
 4 4 20  
 5 5 5

Я использую:

pd.concat([df1,df2], sort=False).drop_duplicates(['x'],keep='last')

Что я получу

 x y z   
 0 0 0  
 2 2 2  
 3 3 3  
 5 5 5  
 1 Nan 10  
 4 Nan 20

Есть ли способ получить это с помощью встроенных пандметоды

1 Ответ

1 голос
/ 12 октября 2019

Вам нужно оставить merge и ffill и drop ненужные столбцы

df1.merge(df2, on=['x','y'], how='left', suffixes=['_1','']).ffill(1).drop('z_1',1).astype(int)

Out[104]:
   x  y   z
0  0  0   0
1  1  1  10
2  2  2   2
3  3  3   3
4  4  4  20
5  5  5   5
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...