pandas.DataFrame.sample
- DataFrame.sample(n=None, frac=None, replace=False, weights=None, random_state=None, axis=None, ignore_index=False)[source]
-
Возвращает случайную выборку элементов из оси объекта.
Можно использовать random_state для воспроизводимости.
- Параметры
-
- n:int, необязательно
-
Количество элементов из оси для возврата. Не может быть использовано с frac. По умолчанию = 1, если frac = None.
- frac:float, необязательно
-
Доля элементов оси для возврата. Не может быть использовано с n.
- replace:bool, по умолчанию False
-
Разрешить или запретить выборку одной и той же строки более одного раза.
- weights:str или ndarray-подобный объект, необязательно
-
По умолчанию ‘None’ приводит к равномерному взвешиванию вероятностей. Если передается Series, он будет согласован с целевым объектом по индексу. Значения индекса в weights, не найденные в образце объекта, будут игнорироваться, а значения индекса в образце объекта, отсутствующие в weights, будут назначены весам нуля. Если вызывается для DataFrame, примет имя столбца, когда axis = 0. За исключением случаев, когда weights – это Series, weights должны иметь тот же размер, что и ось, по которой производится выборка. Если веса не суммируются до 1, они будут нормализованы до суммы 1. Пропущенные значения в столбце весов будут обрабатываться как ноль. Бесконечные значения недопустимы.
- random_state:int, массив, BitGenerator, np.random.RandomState, np.random.Generator, необязательно
-
Если int, массив или BitGenerator, seed для генератора случайных чисел. Если np.random.RandomState или np.random.Generator, используется как есть.
Изменено в версии 1.1.0: массив и объект BitGenerator теперь передаются в np.random.RandomState() в качестве seed
Изменено в версии 1.4.0: объекты np.random.Generator теперь принимаются
- axis:{0 или ‘index’, 1 или ‘columns’, None}, по умолчанию None
-
Ось для выборки. Принимает номер оси или имя. По умолчанию – статистическая ось для данного типа данных. Для Series этот параметр не используется и по умолчанию равен None.
- ignore_index:bool, по умолчанию False
-
Если True, результирующий индекс будет помечен как 0, 1, ..., n-1.
Введено в версии 1.3.0.
- Возвращает
-
- Series или DataFrame
-
Новый объект того же типа, что и вызывающий объект, содержащий n случайных элементов, выбранных из вызывающего объекта.
См. также
DataFrameGroupBy.sample-
Генерирует случайные выборки из каждой группы объекта DataFrame.
SeriesGroupBy.sample-
Генерирует случайные выборки из каждой группы объекта Series.
numpy.random.choice-
Генерирует случайную выборку из заданного одномерного массива NumPy.
Примечания
Если frac > 1, replacement следует установить в True.
Примеры
>>> df = pd.DataFrame({'num_legs': [2, 4, 8, 0], ... 'num_wings': [2, 0, 0, 0], ... 'num_specimen_seen': [10, 2, 1, 8]}, ... index=['falcon', 'dog', 'spider', 'fish']) >>> df num_legs num_wings num_specimen_seen falcon 2 2 10 dog 4 0 2 spider 8 0 1 fish 0 0 8Извлечь 3 случайных элемента из
Seriesdf['num_legs']: Обратите внимание, что мы используем random_state для обеспечения воспроизводимости примеров.>>> df['num_legs'].sample(n=3, random_state=1) fish 0 spider 8 falcon 2 Name: num_legs, dtype: int64
Случайная выборка 50% от
DataFrameс заменой:>>> df.sample(frac=0.5, replace=True, random_state=1) num_legs num_wings num_specimen_seen dog 4 0 2 fish 0 0 8Образец upsample
DataFrameс заменой: Обратите внимание, что параметр replace должен быть True для параметра frac > 1.>>> df.sample(frac=2, replace=True, random_state=1) num_legs num_wings num_specimen_seen dog 4 0 2 fish 0 0 8 falcon 2 2 10 falcon 2 2 10 fish 0 0 8 dog 4 0 2 fish 0 0 8 dog 4 0 2Использование столбца DataFrame в качестве весов. Строки с большим значением в столбце num_specimen_seen имеют больше шансов быть отобранными.
>>> df.sample(n=2, weights='num_specimen_seen', random_state=1) num_legs num_wings num_specimen_seen falcon 2 2 10 fish 0 0 8
© 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.DataFrame.sample.html