Spec-Zone.ru › pandas 0.20

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, в этом случае будет поднята ошибка ValueError

axis : {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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API