2016-10-03 74 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