df.sample(n=2, random_state=42)[['order_id', 'channel']]
Результат:
order_id channel 3 1004 email 1 1002 paid
df.sample(frac=0.5, random_state=1).shape
Результат:
(2, 6)
df.sample(n=3, replace=True, random_state=7)['order_id'].tolist()
Результат:
[1004, 1001, 1004]Порешать Python-задачи в тренажёре →
Используют для быстрого просмотра случайного среза, разбиения train/test, бутстрэпа и даунсэмплинга больших таблиц. Спрашивают про random_state (воспроизводимость) и weights (взвешенная/стратифицированная выборка).
Зафиксируйте random_state (целое число или np.random.Generator): df.sample(n=100, random_state=42). При одинаковом seed и неизменных данных результат будет тем же. Без него каждый вызов даёт новую случайную выборку.
n задаёт точное число строк, frac — долю (0.1 = 10%). Передать оба сразу нельзя. Для выборки больше исходного размера (frac>1 или n>len) обязателен replace=True — сэмплинг с возвращением.
Параметр weights принимает имя колонки или массив неотрицательных весов — вероятность строки пропорциональна весу. Для стратификации по группам применяют df.groupby('channel').sample(frac=0.1) — сэмпл берётся внутри каждой группы отдельно.
Pandas: основы · NumPy векторизация
groupby · merge · pivot_table · apply · value_counts · drop_duplicates
Открыть Python-тренажёр (556 задач) →