Pandas Concat: How to Merge DataFrames in Pandas
Pandas concat - это метод библиотеки Pandas, который позволяет объединять данные из нескольких таблиц (DataFrame или Series) в одну таблицу. Этот метод является одним из основных инструментов работы с данными в библиотеке Pandas и часто используется для объединения таблиц с различными полями или с разными источниками данных.
Синтаксис метода concat выглядит следующим образом:
pd.concat(objs, axis=0, join='outer', ignore_index=False)
где:
- objs – список или кортеж объектов для объединения.
- axis – ось вдоль которой будет происходить объединение данных (0 – по строкам, 1 – по столбцам).
- join – тип объединения ('outer', 'inner', 'left', 'right').
- ignore_index – установка True позволяет переиндексировать результирующий DataFrame.
Примеры кода
Допустим, у нас есть два DataFrame df1 и df2, которые мы хотим объединить по строкам.
python
import pandas as pd
# создаем два DataFrame
df1 = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6]})
df2 = pd.DataFrame({'A': [4, 5, 6], 'B': [7, 8, 9]})
# объединяем таблицы по строкам
df_concat = pd.concat([df1, df2])
print(df_concat)
Вывод:
A B
0 1 4
1 2 5
2 3 6
0 4 7
1 5 8
2 6 9
Теперь мы хотим объединить данные из двух DataFrame по столбцам.
python
import pandas as pd
# создаем два DataFrame
df1 = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6]})
df2 = pd.DataFrame({'C': [4, 5, 6], 'D': [7, 8, 9]})
# объединяем таблицы по столбцам
df_concat = pd.concat([df1, df2], axis=1)
print(df_concat)
Вывод:
A B C D
0 1 4 4 7
1 2 5 5 8
2 3 6 6 9
Кроме того, мы можем указать тип объединения. Рассмотрим пример, где мы хотим объединить данные, содержащие одни и те же столбцы.
python
import pandas as pd
# создаем два DataFrame
df1 = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6]})
df2 = pd.DataFrame({'A': [3, 4], 'B': [7, 8]})
# объединяем таблицы по строкам с типом 'outer'
df_concat = pd.concat([df1, df2], join='outer')
print(df_concat)
Вывод:
A B
0 1 4
1 2 5
2 3 6
0 3 7
1 4 8
Как мы видим, при таком типе объединения появляются значения, которые не были найдены в исходных таблицах.
И наконец, мы можем установить параметр ignore_index=True для того, чтобы переиндексировать объединенную таблицу.
python
import pandas as pd
# создаем два DataFrame
df1 = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6]})
df2 = pd.DataFrame({'A': [4, 5, 6], 'B': [7, 8, 9]})
# объединяем таблицы по строкам с переиндексацией
df_concat = pd.concat([df1, df2], ignore_index=True)
print(df_concat)
Вывод:
A B
0 1 4
1 2 5
2 3 6
3 4 7
4 5 8
5 6 9
Как видно из этих примеров, метод concat предоставляет множество возможностей для объединения данных из разных источников. Он позволяет гибко работать с таблицами и учитывать особенности их структуры и содержимого.