Объединение двух фреймов данных с перекрывающимися без указания перекрывающихся столбцов, но с перезаписью одного из них (в python) - PullRequest
0 голосов
/ 14 апреля 2020

Я борюсь со следующей проблемой:

У меня есть два кадра данных: df1

 A      B      C
 1      5      8
 2      1      2
 3      2      1
 4      3      6

и df2 с теми же именами столбцов, но не такими столбцами, как df1:

 A      B      
 1      1      
 8      2      
 1      5      
 6      3

df1 и df2 всегда имеют одинаковое количество строк, только количество столбцов df2 меньше или равно df1. Кроме того, имена столбцов совпадают, но не значения в столбце (они могут быть одинаковыми, но это определенно не всегда так)

Теперь я хочу создать новый фрейм данных, где перекрывающиеся столбцы между df1 и df2 (столбцы A и B, NOT C) определяются df2, но имеют ту же форму, что и df1 (поэтому df1 доминирует в количестве столбцов, но df2 доминирует в том, какое значение брать из перекрывающиеся столбцы). Важно знать, что я не хочу указывать, какие столбцы перекрываются.

Таким образом, результат должен дать:

df3:

 A      B      C
 1      1      8
 8      2      2
 1      5      1
 6      3      6

Возможно ли это, особенно с трудностью не указывать заранее перекрывающиеся столбцы. кто-нибудь умное решение? Потому что это кажется невозможным со всеми возможными вариантами слияния и объединения.

1 Ответ

1 голос
/ 14 апреля 2020

Пока в df2 нет меток столбцов, отсутствующих в df1, вы можете использовать

df3 = df1.copy()
df3.loc[:,df2.columns] = df2
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...