Мой вопрос тесно связан с Слияние панд - Как избежать дублирования столбцов , но не идентичны.
Я хочу объединить столбцы, которые различаются в трехdataframes.Кадры данных имеют идентификатор столбца и некоторые идентичные столбцы: Пример.
df1
id place name qty unit A
1 NY Tom 2 10 a
2 TK Ron 3 15 a
3 Lon Don 5 90 a
4 Hk Sam 4 49 a
df2
id place name qty unit B
1 NY Tom 2 10 b
2 TK Ron 3 15 b
3 Lon Don 5 90 b
4 Hk Sam 4 49 b
df3
id place name qty unit C D
1 NY Tom 2 10 c d
2 TK Ron 3 15 c d
3 Lon Don 5 90 c d
4 Hk Sam 4 49 c d
Результат:
id place name qty unit A B C D
1 NY Tom 2 10 a b c d
2 TK Ron 3 15 a b c d
3 Lon Don 5 90 a b c d
4 Hk Sam 4 49 a b c d
Столбцы place, name, qty и unit всегда будут частью трех информационных фреймов, имена разных столбцов могут различаться (A, B, C, D вмой пример).Три кадра данных имеют одинаковое количество строк.
Я пробовал:
cols_to_use = df1.columns - df2.columns
dfNew = merge(df, df2[cols_to_use], left_index=True, right_index=True, how='outer')
Проблема в том, что я получаю больше строк, чем ожидалось, и столбцы переименовываются в результирующий кадр данных (при использовании concat).