pandas.core.groupby.DataFrameGroupBy.sample
- DataFrameGroupBy.sample(n=None, frac=None, replace=False, weights=None, random_state=None)[source]
-
Возвращает случайную выборку элементов из каждой группы.
Вы можете использовать random_state для воспроизводимости.
- Параметры:
-
- 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/2.2.2/reference/api/pandas.core.groupby.DataFrameGroupBy.sample.html