Spec-Zone.ru › pandas 0.23

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 : последовательность или отображение объектов 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

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

sort : булево значение, по умолчанию None

Сортировать ось, не участвующую в объединении, если она ещё не выровнена, когда join равно ‘outer’. Текущее значение по умолчанию для сортировки устарело и будет изменено на не-сортировку в будущей версии pandas.

Явно передайте sort=True для отключения предупреждения и сортировки. Явно передайте sort=False для отключения предупреждения и не сортировать.

Это не влияет, когда join='inner', что уже сохраняет порядок оси, не участвующей в объединении.

Введено в версии 0.23.0.

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.23.4/generated/pandas.concat.html

Spec-Zone.ru

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