Spec-Zone.ru › pandas 2

pandas.core.groupby.SeriesGroupBy.take

SeriesGroupBy.take(indices, axis=_NoDefault.no_default, **kwargs)[source]

Возвращает элементы в заданных порядковых индексах в каждой группе.

Это означает, что мы индексируем не по фактическим значениям в атрибуте индекса объекта, а по фактической позиции элемента в объекте.

Если для какой-либо группы запрошенный индекс не существует, этот метод выдаст ошибку. Чтобы получить аналогичное поведение, игнорирующее индексы, которые не существуют, см. SeriesGroupBy.nth().

Parameters:
indices:array-like

Массив целых чисел, указывающий позиции для взятия в каждой группе.

axis:{0 или ‘index’, 1 или ‘columns’, None}, по умолчанию 0

Ось, на которой следует выбрать элементы. 0 означает, что мы выбираем строки, 1 означает, что мы выбираем столбцы. Для SeriesGroupBy этот параметр не используется и по умолчанию равен 0.

Устарело начиная с версии 2.1.0: Для axis=1, работайте с базовым объектом вместо этого. В противном случае ключевое слово axis не нужно.

**kwargs

Для совместимости с numpy.take(). Не оказывает влияния на вывод.

Returns:
Series

Series, содержащая элементы, взятые из каждой группы.

См. также

Series.take

Взятие элементов из Series вдоль оси.

Series.loc

Выбор подмножества DataFrame по меткам.

Series.iloc

Выбор подмножества DataFrame по позициям.

numpy.take

Взятие элементов из массива вдоль оси.

SeriesGroupBy.nth

Аналогично take, не будет генерировать ошибку, если индексы отсутствуют.

Примеры

>>> df = pd.DataFrame([('falcon', 'bird', 389.0),
...                    ('parrot', 'bird', 24.0),
...                    ('lion', 'mammal', 80.5),
...                    ('monkey', 'mammal', np.nan),
...                    ('rabbit', 'mammal', 15.0)],
...                   columns=['name', 'class', 'max_speed'],
...                   index=[4, 3, 2, 1, 0])
>>> df
     name   class  max_speed
4  falcon    bird      389.0
3  parrot    bird       24.0
2    lion  mammal       80.5
1  monkey  mammal        NaN
0  rabbit  mammal       15.0
>>> gb = df["name"].groupby([1, 1, 2, 2, 2])

Взятие элементов в позициях 0 и 1 вдоль оси 0 в каждой группе (по умолчанию).

>>> gb.take([0, 1])
1  4    falcon
   3    parrot
2  2      lion
   1    monkey
Name: name, dtype: object

Мы можем брать элементы, используя отрицательные целые числа для положительных индексов, начиная с конца объекта, так же, как и с Python-списками.

>>> gb.take([-1, -2])
1  3    parrot
   4    falcon
2  0    rabbit
   1    monkey
Name: name, dtype: object

© 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/2.2.2/reference/api/pandas.core.groupby.SeriesGroupBy.take.html

Spec-Zone.ru

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