March 26, 2022
Перемешивание и случайная выборка строк в Pandas датафрейме
Рассмотрим, как, используя встроенные в Pandas возможности, перемешать строки таблицы или осуществить их случайную выборку. Для наглядности будем использовать следующий датафрейм:
import numpy as np import pandas as pd np.random.seed(0) df = pd.DataFrame([[1, 20, 5, 1], [2, 23, 10, 0], [3, 28, 4, 0], [4, 100, 0, 0], [5, 1, 4, 1], [6, 6, 6, 1], [7, 34, 2, 0], [8, 45, 4, 0], [9, 33, 23, 0], [10, 35,3, 0]], columns=['id', 'revenue', 'balance', 'target']) df
Если ваша задача - просто перемешать таблицу, то вызовите метод sample с параметром frac=1:
# df.sample(frac=1).reset_index(drop=True) df.sample(frac=1)
Если сохранение индекса не важно, то сразу воспользуйтесь методом reset_index(drop=True) (как в закомментированной строке выше).
Метод sample также поможет, если вам интересно выбрать только несколько строк. При этом для задания доли используйте параметр frac, а конкретного числа - n. Например, выберем случайно 3 строки или 20%:
df.sample(n=3) df.sample(frac=0.2)
С параметром replace=True можно осуществлять выборку с возвращением:
df.sample(n=11, replace=True)