Spec-Zone.ru › pandas 1

pandas.core.groupby.DataFrameGroupBy.sample

DataFrameGroupBy.sample(n=None, frac=None, replace=False, weights=None, random_state=None)[source]

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

Можно использовать random_state для воспроизводимости.

Добавлена в версии 1.1.0.

Параметры
n:int, необязательно

Количество элементов, которые нужно вернуть для каждой группы. Не может использоваться с frac и должно быть не больше наименьшей группы, если replace не равно True. По умолчанию равно единице, если frac равно None.

frac:float, необязательно

Доля элементов для возврата. Не может использоваться с n.

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

Разрешить или запретить выборку одного и того же ряда более одного раза.

weights:list-like, необязательно

По умолчанию None приводит к весам с равной вероятностью. Если передано список-подобный объект, значения должны иметь ту же длину, что и базовая таблица DataFrame или объект Series, и будут использоваться как вероятности выборки после нормализации в каждой группе. Значения должны быть неотрицательными, а по крайней мере один элемент в каждой группе должен быть положительным.

random_state:int, array-like, BitGenerator, np.random.RandomState, np.random.Generator, необязательно

Если int, array-like или BitGenerator, seed для генератора случайных чисел. Если np.random.RandomState или np.random.Generator, использовать как задано.

Изменено в версии 1.4.0: Теперь принимаются объекты np.random.Generator

Возвращает
Series или DataFrame

Новый объект того же типа, что и вызывающий объект, содержащий элементы, случайным образом выбранные в каждой группе из вызывающего объекта.

См. также

DataFrame.sample

Генерирует случайные выборки из объекта DataFrame.

numpy.random.choice

Генерирует случайную выборку из заданного одномерного массива numpy.

Примеры

>>> df = pd.DataFrame(
...     {"a": ["red"] * 2 + ["blue"] * 2 + ["black"] * 2, "b": range(6)}
... )
>>> df
       a  b
0    red  0
1    red  1
2   blue  2
3   blue  3
4  black  4
5  black  5

Выбирает одну строку случайным образом для каждого уникального значения в столбце a. Аргумент random_state может быть использован для гарантии воспроизводимости:

>>> df.groupby("a").sample(n=1, random_state=1)
       a  b
4  black  4
2   blue  2
1    red  1

Установите frac для выборки фиксированных пропорций вместо количества:

>>> df.groupby("a")["b"].sample(frac=0.5, random_state=2)
5    5
2    2
0    0
Name: b, dtype: int64

Управляйте вероятностями выборки в группах, задав веса:

>>> df.groupby("a").sample(
...     n=1,
...     weights=[1, 1, 1, 0, 0, 1],
...     random_state=1,
... )
       a  b
5  black  5
2   blue  2
0    red  0

© 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.core.groupby.DataFrameGroupBy.sample.html

Spec-Zone.ru

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