2016-10-03 3 views
4

Я знаю DataFrame.sample(), но как я могу это сделать, а также удалить образец из набора данных? (Примечание: AFAIK это не имеет ничего общего с отбором проб с заменой)Pandas случайный образец с удалением

Например вот это суть того, что я хочу достичь, это на самом деле не работает:

len(df) # 1000 

df_subset = df.sample(300) 
len(df_subset) # 300 

df = df.remove(df_subset) 
len(df) # 700 

ответ

5

Если ваш индекс является уникальным

df = df.drop(df_subset.index) 

Пример

df = pd.DataFrame(np.arange(10).reshape(-1, 2)) 

образец

df_subset = df.sample(2) 
df_subset 

enter image description here


падения

df.drop(df_subset.index) 

enter image description here

+0

Есть в любом случае использование DataFrame. ** pop **, чтобы удалить образцы? Потому что DataFrame. ** pop ** обычно используется для заполнения столбцов. Что, если я перенесирую сначала свой DF? – MMF

+0

@MMF отличная идея. Да, вы можете работать с транспозицией и делать это. Вы вдохновили меня попробовать что-то еще. Если я смогу закончить его до следующей встречи, я отправлю его здесь. – piRSquared

+0

@MMF также, кажется, что 'pop' принимает только имена столбцов. Смысл, я не могу много размножаться. – piRSquared

Смежные вопросы