Spec-Zone.ru › pandas 0.25

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 : a sequence or mapping of Series or DataFrame objects

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

axis : {0/’index’, 1/’columns’}, default 0

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

join : {‘inner’, ‘outer’}, default ‘outer’

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

join_axes : list of Index objects

Устаревшее с версии 0.25.0.

Конкретные индексы для использования на других осях n - 1 вместо выполнения логики множеств inner/outer. Используйте .reindex() перед или после объединения в качестве замены.

ignore_index : bool, default False

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

keys : sequence, default None

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

levels : list of sequences, default None

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

names : list, default None

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

verify_integrity : bool, default False

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

sort : bool, default None

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

Явно укажите sort=True , чтобы заглушить предупреждение и отсортировать. Явно укажите sort=False , чтобы заглушить предупреждение и не сортировать.

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

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

copy : bool, default True

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

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

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

См. также

Series.append
Объединение Series.
DataFrame.append
Объединение DataFrames.
DataFrame.join
Объединение DataFrames с использованием индексов.
DataFrame.merge
Слияние DataFrames по индексам или столбцам.

Примечания

Аргументы 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], 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']

© 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.25.0/reference/api/pandas.concat.html

Spec-Zone.ru

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