Объединение нескольких DataFrame с использованием нескольких общих столбцов
Имеется N-ое количество df:
ldf = [df1,df2,df3,df4,df5]
Отдельный фрейм имеет следующий вид:
df1
id na er ty uy
er tr rt ty rf
df gh yh ju jk
df2
id na er ty uy
rf gb th yn lk
lk pl vb sd gb
Просьба, подсказать, как объединить все df приведя к следующему виду:
df1 df1 df1 | df2 df2 df2 ...
id na er ty uy | er ty uy ...
er tr rt ty rf | rr rf ff ...
df gh yh ju jk | fr df gh ...
Соответсвенно, объединить по столбцам id и na.
Ответы (1 шт):
Автор решения: MaxU
→ Ссылка
Пример решения для приведенных в вопросе примеров данных:
In [25]: lst = [df1, df2]
In [26]: idx_cols = ["id", "na"]
In [27]: res = pd.concat([df.set_index(idx_cols) for df in lst], axis=1)
In [28]: res
Out[28]:
er ty uy er ty uy
id na
df gh yh ju jk NaN NaN NaN
er tr rt ty rf NaN NaN NaN
lk pl NaN NaN NaN vb sd gb
rf gb NaN NaN NaN th yn lk