pandas.core.groupby.DataFrameGroupBy.take
- DataFrameGroupBy.take(indices, axis=_NoDefault.no_default, **kwargs)[source]
-
Возвращает элементы в заданных позиционных индексах в каждой группе.
Это означает, что мы не индексируем по фактическим значениям в атрибуте индекса объекта. Мы индексируем по фактическому положению элемента в объекте.
Если для некоторой группы запрошенного индекса не существует, этот метод вызовет исключение. Чтобы получить аналогичное поведение, игнорирующее индексы, которые не существуют, см.
DataFrameGroupBy.nth().- Параметры:
-
- indices:array-like
-
Массив целых чисел, указывающих, какие позиции взять.
- axis:{0 или ‘index’, 1 или ‘columns’, None}, по умолчанию 0
-
Ось, на которой нужно выбрать элементы.
0означает, что мы выбираем строки,1означает, что мы выбираем столбцы.Устарело начиная с версии 2.1.0: Для axis=1, работайте с базовым объектом вместо этого. В противном случае ключевое слово axis не требуется.
- **kwargs
-
Для совместимости с
numpy.take(). Не оказывает влияния на вывод.
- Возвращает:
-
- DataFrame
-
DataFrame, содержащий элементы, взятые из каждой группы.
См. также
DataFrame.take-
Взятие элементов из Series вдоль оси.
DataFrame.loc-
Выборка подмножества DataFrame по меткам.
DataFrame.iloc-
Выборка подмножества DataFrame по позициям.
numpy.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.groupby([1, 1, 2, 2, 2])Взятие элементов в позициях 0 и 1 вдоль оси 0 (по умолчанию).
Обратите внимание, что выбранные индексы в результате не соответствуют нашим входным индексам 0 и 1. Это потому, что мы выбираем 0-ю и 1-ю строки, а не строки, индексы которых равны 0 и 1.
>>> gb.take([0, 1]) name class max_speed 1 4 falcon bird 389.0 3 parrot bird 24.0 2 2 lion mammal 80.5 1 monkey mammal NaNПорядок указанных индексов влияет на порядок в результате. Здесь порядок поменян с предыдущего примера.
>>> gb.take([1, 0]) name class max_speed 1 3 parrot bird 24.0 4 falcon bird 389.0 2 1 monkey mammal NaN 2 lion mammal 80.5Взятие элементов в индексах 1 и 2 вдоль оси 1 (выбор столбцов).
Мы можем взять элементы, используя отрицательные целые числа для положительных индексов, начиная с конца объекта, как и в Python-списках.
>>> gb.take([-1, -2]) name class max_speed 1 3 parrot bird 24.0 4 falcon bird 389.0 2 0 rabbit mammal 15.0 1 monkey mammal NaN
© 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.DataFrameGroupBy.take.html