pandas.concat
-
pandas.concat(objs, axis=0, join='outer', join_axes=None, ignore_index=False, keys=None, levels=None, names=None, verify_integrity=False, copy=True)[source] -
Объединение объектов pandas вдоль определенной оси с необязательной логикой множеств вдоль других осей.
Также может добавить уровень иерархической индексации по оси объединения, что может быть полезно, если метки совпадают (или перекрываются) на указанном номере оси.
Параметры: objs : последовательность или отображение объектов Series, DataFrame или Panel
Если передан словарь, отсортированные ключи будут использоваться в качестве аргумента
keys, если он не передан, в противном случае будут выбраны значения (см. ниже). Любые объекты None будут опушены молча, если они все None, в этом случае будет поднята ошибка ValueErroraxis : {0/’index’, 1/’columns’}, по умолчанию 0
Ось для объединения
join : {‘inner’, ‘outer’}, по умолчанию ‘outer’
Как обрабатывать индексы на других осях
join_axes : список объектов Index
Конкретные индексы для использования для других осей n - 1 вместо выполнения логики множеств inner/outer
ignore_index : булево значение, по умолчанию False
Если True, не использовать значения индекса вдоль оси объединения. Результирующая ось будет помечена как 0, ..., n - 1. Это полезно, если вы объединяете объекты, где ось объединения не имеет осмысленной информации индексации. Обратите внимание, что значения индекса на других осях все еще учитываются при объединении.
keys : последовательность, по умолчанию None
Если передано несколько уровней, должно содержать кортежи. Построить иерархический индекс, используя переданные ключи как самый внешний уровень
levels : список последовательностей, по умолчанию None
Конкретные уровни (уникальные значения) для использования при построении MultiIndex. В противном случае они будут выведены из ключей
names : список, по умолчанию None
Имена уровней в результирующем иерархическом индексе
verify_integrity : булево значение, по умолчанию False
Проверить, содержит ли новая ось объединения дубликаты. Это может быть очень затратно по сравнению с фактическим объединением данных
copy : булево значение, по умолчанию True
Если False, не копировать данные излишне
Возвращаемое значение: concatenated : тип объектов
См. также
Series.append,DataFrame.append,DataFrame.join,DataFrame.mergeПримечания
Аргументы keys, levels и names являются необязательными.
Подробное руководство по тому, как этот метод вписывается в другие инструменты для объединения объектов panda, можно найти здесь.
Примеры
Объедините два
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]) animal letter number 0 NaN a 1 1 NaN b 2 0 cat c 3 1 dog d 4
Объедините
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) 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.20.3/generated/pandas.concat.html