Spec-Zone.ru › pandas 0.21

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 вместо выполнения внутренней/внешней логики множества

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

Spec-Zone.ru

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