DataFrame.sample() / Series.sample()

Метод sample() возвращает случайную выборку строк (или столбцов) из объекта. Подходит для подготовки тестовых данных, A/B-разделения, бутстрэппинга.

Сигнатура

DataFrame.sample(n=None, frac=None, replace=False, weights=None,
                 random_state=None, axis=None, ignore_index=False)

Параметры

  • n — число элементов.

  • frac — доля от исходного объёма (несовместимо с n).

  • replace — выборка с возвращением.

  • weights — веса для строк.

  • random_state — seed для воспроизводимости.

  • ignore_index — сбросить индекс.

Возвращаемое значение

Новый DataFrame / Series.

Примеры

Пример 1. n=3 случайных строки

import pandas as pd

df = pd.DataFrame({"v": range(10)})
print(df.sample(n=3, random_state=42))
   v
1  1
8  8
5  5

Пример 2. 30% строк

import pandas as pd

df = pd.DataFrame({"v": range(10)})
print(df.sample(frac=0.3, random_state=0))
   v
2  2
8  8
4  4

Пример 3. С возвращением (бутстрэп)

import pandas as pd

s = pd.Series([10, 20, 30])
print(s.sample(n=5, replace=True, random_state=1).tolist())
[30, 20, 30, 30, 10]

Пример 4. Перемешивание (frac=1)

import pandas as pd

df = pd.DataFrame({"v": [1, 2, 3, 4, 5]})
print(df.sample(frac=1, random_state=7).reset_index(drop=True))
   v
0  4
1  5
2  1
3  3
4  2

Пример 5. Взвешенная выборка

import pandas as pd

df = pd.DataFrame({"item": ["A", "B", "C"], "w": [1, 10, 1]})
print(df.sample(n=2, weights="w", random_state=3))
  item   w
1    B  10
0    A   1

См. также

Примечание

Лицензия и источники

Техническое описание функции адаптировано из официальной документации Pandas (https://pandas.pydata.org/docs/), BSD-3-Clause License. Примеры и пояснения — © AlashEd Wiki.