Допустим, у меня есть три фрейма данных:
from pandas import DataFrame
df1 = DataFrame([
[1],
[3],
[4]
],
index=[1, 3, 4],
columns=['value1']
)
df2 = DataFrame([
[5],
[6],
[7],
],
index=[5, 6, 7],
columns=['value2']
)
df3 = DataFrame([
[5, 9],
[6, 10],
[7, 11],
[8, 12]
],
index=[5, 6, 7, 8],
columns=['value1', 'value2']
)
Использование
concat([df1, df2, df3], sort=True, axis=1)
теперь даст мне
value1 value2 value1 value2
1 1.0 NaN NaN NaN
3 3.0 NaN NaN NaN
4 4.0 NaN NaN NaN
5 NaN 5.0 5.0 9.0
6 NaN 6.0 6.0 10.0
7 NaN 7.0 7.0 11.0
8 NaN NaN 8.0 12.0
Теперь, как мне получить результат
value1 value2
1 1.0 NaN
3 3.0 NaN
4 4.0 NaN
5 5.0 5.0
6 5.0 6.0
7 7.0 7.0
8 8.0 12.0
Другими словами, как можно объединить столбцы с одинаковыми именами "влево"? Я ищу универсальное решение, которое может принимать любое количество нескольких столбцов с одним и тем же именем (а также иметь имена столбцов, которые встречаются только один раз).