2016-10-03 109 views
4

我知道DataFrame.sample(),但我怎樣才能做到這一點,也從數據集中刪除樣本? (注:據我所知這無關取樣與更換熊貓隨機抽樣與刪除

例如這裏是的是我想達到的實質,這不實際工作:

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 **通常用於彈出列。如果我首先將DF轉置,如何? – MMF

+0

@MMF很棒的主意。是的,你可以從轉位開始工作並做到這一點。你激勵我去嘗試別的東西。如果我能在下次會議之前完成它,我會在這裏發佈。 – piRSquared

+0

@MMF也是,'pop'似乎只接受單列名稱。意思是說,我不能輕鬆地彈出多個。 – piRSquared