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 вместо выполнения внутренней/внешней логики множества
ignore_index : булево значение, по умолчанию False
Если True, значения индекса вдоль оси объединения не используются. Результирующая ось будет помечена 0, ..., n - 1. Это полезно, если вы объединяете объекты, где ось объединения не имеет осмысленной информации об индексации. Обратите внимание, что значения индекса на других осях всё ещё учитываются при объединении.
keys : последовательность, по умолчанию None
Если передано несколько уровней, должно содержать кортежи. Создайте иерархический индекс, используя переданные ключи в качестве внешнего уровня
levels : список последовательностей, по умолчанию None
Конкретные уровни (уникальные значения) для использования при построении MultiIndex. В противном случае они будут выведены из ключей
names : список, по умолчанию None
Имена уровней в результирующем иерархическом индексе
verify_integrity : булево значение, по умолчанию False
Проверьте, содержит ли новая ось объединения дубликаты. Это может быть очень затратно по сравнению с фактическим объединением данных
copy : булево значение, по умолчанию True
Если False, не копировать данные без необходимости
Возвращает: concatenated : объект, тип objs
При объединении всех
Seriesпо индексу (axis=0), возвращаетсяSeries. Когдаobjsсодержит по крайней мере одинDataFrame, возвращаетсяDataFrame. При объединении по столбцам (axis=1), возвращаетсяDataFrame.См. также
Series.append,DataFrame.append,DataFrame.join,DataFrame.mergeПримечания
Аргументы 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]) 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) 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.21.1/generated/pandas.concat.html