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