Spec-Zone.ru › pandas 1

pandas.concat

pandas.concat(objs, axis=0, join='outer', ignore_index=False, keys=None, levels=None, names=None, verify_integrity=False, sort=False, copy=True)[source]

Объединение объектов pandas по определённой оси.

Позволяет использовать опциональную логику набора по другим осям.

Также можно добавить слой иерархической индексации по оси объединения, что может быть полезно, если метки совпадают (или перекрываются) на указанном номере оси.

Параметры
objs:последовательность или отображение объектов Series или DataFrame

Если передано отображение, отсортированные ключи будут использоваться в качестве аргумента keys, если он не передан, в этом случае будут выбраны значения (см. ниже). Любые объекты None будут отброшены без предупреждения, если все они равны None, будет поднято исключение ValueError.

axis:{0/’индекс’, 1/’столбцы’}, по умолчанию 0

Ось для объединения.

join:{‘inner’, ‘outer’}, по умолчанию ‘outer’

Как обрабатывать индексы на других осях (или осях).

ignore_index:bool, по умолчанию False

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

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

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

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

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

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

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

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

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

sort:bool, по умолчанию False

Сортировать ось, не участвующую в объединении, если она ещё не выровнена, когда join равно ‘outer’. Это не имеет эффекта, когда join='inner', которая уже сохраняет порядок оси, не участвующей в объединении.

Изменено в версии 1.0.0: Изменено на не сортировку по умолчанию.

copy:bool, по умолчанию True

Если False, не копировать данные без необходимости.

Возвращает
объект, тип objs

При объединении всех Series по индексу (axis=0), возвращается Series. Когда objs содержит по крайней мере один DataFrame, возвращается DataFrame. При объединении по столбцам (axis=1), возвращается DataFrame.

См. также

DataFrame.join

Объединение DataFrame с использованием индексов.

DataFrame.merge

Объединение DataFrame по индексам или столбцам.

Примечания

Аргументы keys, levels и names являются необязательными.

Пошаговое руководство по тому, как этот метод вписывается в другие инструменты для объединения объектов pandas, можно найти здесь.

Не рекомендуется создавать DataFrame, добавляя по одному строке в цикле for. Создайте список строк и создайте DataFrame с помощью одного concat.

Примеры

Объединить два 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']

Добавить одну строку в конец объекта DataFrame.

>>> df7 = pd.DataFrame({'a': 1, 'b': 2}, index=[0])
>>> df7
    a   b
0   1   2
>>> new_row = pd.Series({'a': 3, 'b': 4})
>>> new_row
a    3
b    4
dtype: int64
>>> pd.concat([df7, new_row.to_frame().T], ignore_index=True)
    a   b
0   1   2
1   3   4

© 2008–2022, 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/1.5.0/reference/api/pandas.concat.html

Spec-Zone.ru

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