Spec-Zone.ru › pandas 0.22

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 : boolean, по умолчанию False

Если True, не использовать значения индекса вдоль оси объединения. Результирующая ось будет иметь метки 0, ..., n - 1. Это полезно, если вы объединяете объекты, где ось объединения не имеет осмысленной информации об индексации. Обратите внимание, что значения индексов на других осях всё ещё учитываются в объединении.

keys : последовательность, по умолчанию None

Если передано несколько уровней, должно содержать кортежи. Создать иерархический индекс, используя переданные ключи как внешний уровень

levels : список последовательностей, по умолчанию None

Уникальные значения для построения MultiIndex. В противном случае они будут вычислены по ключам

names : список, по умолчанию None

Имена уровней в результирующем иерархическом индексе

verify_integrity : boolean, по умолчанию False

Проверить, содержит ли новая ось объединения дубликаты. Это может быть очень затратно по времени относительно фактического объединения данных

copy : boolean, по умолчанию 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.22.0/generated/pandas.concat.html

Spec-Zone.ru

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