pandas.core.groupby.DataFrameGroupBy.sample#
- DataFrameGroupBy.sample(n=None, frac=None, replace=False, веса=None, random_state=None)[источник]#
Возвращает случайную выборку элементов из каждой группы.
Вы можете использовать random_state для воспроизводимости.
- Параметры:
- nint, необязательный
Количество элементов для возврата для каждой группы. Нельзя использовать с frac и не должен быть больше наименьшей группы, если только replace равно True. По умолчанию один, если frac равно None.
- fracfloat, опционально
Доля элементов для возврата. Нельзя использовать с n.
- replacebool, по умолчанию False
Разрешить или запретить выборку одной и той же строки более одного раза.
- весаподобный списку, опционально
По умолчанию None приводит к равновесному взвешиванию вероятностей. Если передается список, то значения должны иметь ту же длину, что и базовый DataFrame или Series, и будут использоваться как вероятности выборки после нормализации внутри каждой группы. Значения должны быть неотрицательными с хотя бы одним положительным элементом в каждой группе.
- random_stateint, array-like, BitGenerator, np.random.RandomState, np.random.Generator, optional
Если int, array-like или BitGenerator, начальное значение для генератора случайных чисел. Если 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