Есть ли способ выбрать случайные строки из 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)
Комментариев нет:
Отправить комментарий