Есть ли способ выбрать случайные строки из DataFrame в Pandas.
В R, использующем пакет car, есть полезная функция some(x, n), похожая на head, но в этом примере случайным образом выбирающая 10 строк из x.
Я также просмотрел документацию по нарезке, и похоже, что нет ничего эквивалентного.
Обновлять
Сейчас использую версию 20. Есть пробный метод.
df.sample(n)
Решение проблемы
В версии pandas 0.16.1и выше теперь есть DataFrame.sample встроенный метод:
import pandas
df = pandas.DataFrame(pandas.np.random.random(100))
# Randomly sample 70% of your dataframe
df_percent = df.sample(frac=0.7)
# Randomly sample 7 elements from your dataframe
df_elements = df.sample(n=7)
Для любого вышеуказанного подхода вы можете получить остальные строки, выполнив следующие действия:
df_rest = df.loc[~df.index.isin(df_percent.index)]
Согласно Pedramкомментарию, если вы хотите получить воспроизводимые образцы, передайте random_stateпараметр.
df_percent = df.sample(frac=0.7, random_state=42)
Комментариев нет:
Отправить комментарий