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.