pandas.concat
-
pandas.concat(objs, axis=0, join='outer', join_axes=None, ignore_index=False, keys=None, levels=None, names=None, verify_integrity=False, sort=None, copy=True)[source] -
Объединение объектов pandas по определённой оси с опциональной логикой множеств по другим осям.
Также может добавить уровень иерархической индексации по оси объединения, что может быть полезно, если метки совпадают (или перекрываются) на переданном номере оси.
Параметры: -
objs : a sequence or mapping of Series or DataFrame objects -
Если передан словарь, отсортированные ключи будут использоваться в качестве аргумента
keys, если он не передан, в этом случае будут выбраны значения (см. ниже). Любые объекты None будут отброшены без предупреждений, если все они равны None, то будет выведено исключение ValueError. -
axis : {0/’index’, 1/’columns’}, default 0 -
Ось для объединения.
-
join : {‘inner’, ‘outer’}, default ‘outer’ -
Как обрабатывать индексы на других осях (или осях).
-
join_axes : list of Index objects -
Устаревшее с версии 0.25.0.
Конкретные индексы для использования на других осях n - 1 вместо выполнения логики множеств inner/outer. Используйте .reindex() перед или после объединения в качестве замены.
-
ignore_index : bool, default False -
Если True, не использовать значения индексов вдоль оси объединения. Результирующая ось будет иметь метки 0, ..., n - 1. Это полезно, если вы объединяете объекты, где ось объединения не имеет осмысленной информации об индексации. Обратите внимание, что значения индексов на других осях всё ещё учитываются в объединении.
-
keys : sequence, default None -
Если переданы несколько уровней, должны содержать кортежи. Построить иерархический индекс, используя переданные ключи в качестве самого внешнего уровня.
-
levels : list of sequences, default None -
Конкретные уровни (уникальные значения) для построения MultiIndex. В противном случае они будут выведены из ключей.
-
names : list, default None -
Имена уровней в результирующем иерархическом индексе.
-
verify_integrity : bool, default False -
Проверить, содержит ли новая ось объединения дубликаты. Это может быть очень затратно по времени по сравнению с фактическим объединением данных.
-
sort : bool, default None -
Отсортировать ось, не участвующую в объединении, если она ещё не выровнена, когда
joinравно ‘outer’. Текущий стандарт сортировки устарел и в будущих версиях pandas будет изменён на не сортировку.Явно укажите
sort=True, чтобы заглушить предупреждение и отсортировать. Явно укажитеsort=False, чтобы заглушить предупреждение и не сортировать.Это не имеет эффекта, когда
join='inner', так как уже сохраняет порядок оси, не участвующей в объединении.Введено в версии 0.23.0.
-
copy : bool, default True -
Если False, не копировать данные без необходимости.
Возвращаемое значение: - объект, тип objs
-
При объединении всех
Seriesпо индексу (axis=0), возвращаетсяSeries. Когдаobjsсодержит по крайней мере одинDataFrame, возвращаетсяDataFrame. При объединении по столбцам (axis=1), возвращаетсяDataFrame.
См. также
-
Series.append - Объединение Series.
-
DataFrame.append - Объединение DataFrames.
-
DataFrame.join - Объединение DataFrames с использованием индексов.
-
DataFrame.merge - Слияние DataFrames по индексам или столбцам.
Примечания
Аргументы keys, levels и names — все необязательные.
Подробное описание того, как этот метод сочетается с другими инструментами для объединения объектов pandas, можно найти здесь.
Примеры
Объединение двух
Series.>>> s1 = pd.Series(['a', 'b']) >>> s2 = pd.Series(['c', 'd']) >>> pd.concat([s1, s2]) 0 a 1 b 0 c 1 d dtype: object
Очистить существующий индекс и сбросить его в результате, установив параметр
ignore_indexвTrue.>>> pd.concat([s1, s2], ignore_index=True) 0 a 1 b 2 c 3 d dtype: object
Добавить иерархический индекс на самый внешний уровень данных с опцией
keys.>>> pd.concat([s1, s2], keys=['s1', 's2']) s1 0 a 1 b s2 0 c 1 d dtype: objectНазначить метки ключам индекса, которые вы создали, с помощью параметра
names.>>> pd.concat([s1, s2], keys=['s1', 's2'], ... names=['Series name', 'Row ID']) Series name Row ID s1 0 a 1 b s2 0 c 1 d dtype: objectОбъединение двух
DataFrameобъектов с одинаковыми столбцами.>>> df1 = pd.DataFrame([['a', 1], ['b', 2]], ... columns=['letter', 'number']) >>> df1 letter number 0 a 1 1 b 2 >>> df2 = pd.DataFrame([['c', 3], ['d', 4]], ... columns=['letter', 'number']) >>> df2 letter number 0 c 3 1 d 4 >>> pd.concat([df1, df2]) letter number 0 a 1 1 b 2 0 c 3 1 d 4
Объединение
DataFrameобъектов с перекрывающимися столбцами и возврат всех значений. Столбцы, отсутствующие в пересечении, будут заполненыNaNзначениями.>>> df3 = pd.DataFrame([['c', 3, 'cat'], ['d', 4, 'dog']], ... columns=['letter', 'number', 'animal']) >>> df3 letter number animal 0 c 3 cat 1 d 4 dog >>> pd.concat([df1, df3], sort=False) letter number animal 0 a 1 NaN 1 b 2 NaN 0 c 3 cat 1 d 4 dog
Объединение
DataFrameобъектов с перекрывающимися столбцами и возврат только общих, передавinnerв ключевой аргументjoin.>>> pd.concat([df1, df3], join="inner") letter number 0 a 1 1 b 2 0 c 3 1 d 4
Объединение
DataFrameобъектов по горизонтали по оси x, передавaxis=1.>>> df4 = pd.DataFrame([['bird', 'polly'], ['monkey', 'george']], ... columns=['animal', 'name']) >>> pd.concat([df1, df4], axis=1) letter number animal name 0 a 1 bird polly 1 b 2 monkey george
Предотвратить включение дубликатов значений индекса в результат с помощью опции
verify_integrity.>>> df5 = pd.DataFrame([1], index=['a']) >>> df5 0 a 1 >>> df6 = pd.DataFrame([2], index=['a']) >>> df6 0 a 2 >>> pd.concat([df5, df6], verify_integrity=True) Traceback (most recent call last): ... ValueError: Indexes have overlapping values: ['a'] -
© 2008–2012, AQR Capital Management, LLC, Lambda Foundry, Inc. and PyData Development Team
Licensed under the 3-clause BSD License.
https://pandas.pydata.org/pandas-docs/version/0.25.0/reference/api/pandas.concat.html