Как соедeнить два DataFrame в pandas
У меня есть код
import pandas
d = pandas.DataFrame({'a': [1], 'b': [2]})
f = pandas.DataFrame({'a': [2], 'c': [1], 'b': [3],})
c = pandas.DataFrame({'a': [2], 'g': [4], 'b': [3], })
r = pandas.concat([d, f, c])
print(r)
В итоге я получаю
a b c g
1 2
2 3 1
4
ключ "c", не переходил в конец, а оставался в середине. Вот так:
a c g b
1 2
2 1 3
4
Ответы (2 шт):
Автор решения: Andy Pavlov
→ Ссылка
Перенумеровать колонки также можно с помощью метода reindex()
import pandas
d = pandas.DataFrame({'a': [1], 'b': [2]})
f = pandas.DataFrame({'a': [2], 'c': [1], 'b': [3],})
c = pandas.DataFrame({'a': [2], 'g': [4], 'b': [3], })
r = pandas.concat([d, f, c]).reindex(columns=['a', 'c', 'g', 'b'])
print(r)
Вывод
a c g b
0 1 NaN NaN 2
0 2 1.0 NaN 3
0 2 NaN 4.0 3
Описание reindex() см. на https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.reindex.html
Автор решения: CrazyElf
→ Ссылка
Так это же вопрос отображения. Вы всегда можете выбрать колонки в нужном порядке (и присвоить датафрейм с таким порядком отображения обратно в ваш датафрейм, если хотите):
r = r[['a','c','g','b']]
print(r)
Вывод:
a c g b
0 1 NaN NaN 2
0 2 1.0 NaN 3
0 2 NaN 4.0 3