pandas.core.groupby.SeriesGroupBy.take#

SeriesGroupBy.take(индексы, axis=, **kwargs)[источник]#

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

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

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

Параметры:
индексыarray-like

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

ось{0 или 'index', 1 или 'columns', None}, по умолчанию 0

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

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

**kwargs

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

Возвращает:
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