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, DataFrame, or Panel objects -
Если передаётся словарь, отсортированные ключи будут использоваться как аргумент
keys, если он не передаётся, будут выбраны значения (см. ниже). Любые объекты None будут молча отброшены, если они все не None, в противном случае будет поднято исключение ValueError -
axis : {0/’index’, 1/’columns’}, default 0 -
Ось для объединения
-
join : {‘inner’, ‘outer’}, default ‘outer’ -
Как обрабатывать индексы на других осях
-
join_axes : list of Index objects -
Конкретные индексы для использования на других осях вместо выполнения логики внутреннего/внешнего множества
-
ignore_index : boolean, default False -
Если True, не использовать значения индекса вдоль оси конкатенации. Результирующая ось будет иметь метки 0, ..., n - 1. Это полезно, если вы объединяете объекты, где ось конкатенации не имеет осмысленной информации об индексе. Обратите внимание, что значения индекса на других осях всё ещё учитываются при объединении.
-
keys : sequence, default None -
Если переданы несколько уровней, должен содержать кортежи. Постройте иерархический индекс, используя переданные ключи в качестве внешнего уровня
-
levels : list of sequences, default None -
Конкретные уровни (уникальные значения) для построения MultiIndex. В противном случае они будут выведены из ключей
-
names : list, default None -
Имена уровней в результирующем иерархическом индексе
-
verify_integrity : boolean, default False -
Проверить, содержит ли новая ось конкатенации дубликаты. Это может быть очень затратно по сравнению с фактическим объединением данных
-
sort : boolean, default None -
Отсортировать ось, не участвующую в конкатенации, если она ещё не выровнена, когда
joinравна ‘outer’. Текущий стандартный порядок сортировки устарел и изменится на несортировку в будущей версии pandas.Явно передайте
sort=Trueчтобы отключить предупреждение и отсортировать. Явно передайтеsort=Falseчтобы отключить предупреждение и не сортировать.Это не влияет, когда
join='inner', которая уже сохраняет порядок оси, не участвующей в конкатенации.Новое в версии 0.23.0.
-
copy : boolean, default True -
Если False, не копировать данные без необходимости
Возвращает: -
concatenated : object, type of 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], 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.24.2/reference/api/pandas.concat.html