pandas concat, но взять повторяющиеся ключевые строки слева df - PullRequest
0 голосов
/ 27 мая 2020

Надеюсь, простой. У меня есть 2 dfs, как показано ниже. Я хотел бы заполнить пустые места df2 для любого комбо PORT, MTH, которое находится в df1. Я не могу просто concat и drop_duplicates, поскольку значения могут не совпадать, и я хочу сохранить свою запись df1, если она существует.

DF1

MTH,PORT,value
201503,PORT1,0.302
201504,PORT1,0.231
201505,PORT1,0.833
201502,PORT2,0.35
201503,PORT2,0.734
201504,PORT2,0.755
201505,PORT2,0.257

DF2

MTH,PORT,value
201501,PORT1,0.4033
201502,PORT1,0.2733
201503,PORT1,0.1412
201501,PORT2,0.324
201502,PORT2,0.6593
201503,PORT2,0.276

Итак, для приведенного выше я хотел бы создать 1 df, а для PORT1 иметь записи 201501 и 201502 из DF2, поскольку DF1 не имеет их, но сохраняет остальные записи DF1 PORT. Для PORT2 мы просто введем 201501 запись.

На словах это concat, но если ключи (mth, port) дублируются, берите слева df.

Заранее спасибо

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

MTH,PORT,value
201501,PORT1,0.4033
201502,PORT1,0.2733
201503,PORT1,0.302
201504,PORT1,0.231
201505,PORT1,0.833
201501,PORT2,0.324
201502,PORT2,0.35
201503,PORT2,0.734
201504,PORT2,0.755
201505,PORT2,0.257

1 Ответ

1 голос
/ 27 мая 2020

Попробуем

df=pd.concat([df1,df2]).drop_duplicates(['MTH','PORT'])
...