我有一个包含36k行数据的数据集,想要使用pandas随机选择其中的9k行。如何完成这个任务?
我有一个包含36k行数据的数据集,想要使用pandas随机选择其中的9k行。如何完成这个任务?
我认为您可以使用sample
-抽取9k
行或25%
的行:
df.sample(n=9000)
或者:df.sample(frac=0.25)
使用numpy.random.choice
创建index
的随机样本,然后通过loc
选择 - index
必须是唯一的,这是另一种解决方案:
df = df.loc[np.random.choice(df.index, size=9000)]
如果不是唯一索引,则解决方案如下:
df = df.iloc[np.random.choice(np.arange(len(df)), size=9000)]
numpy
i = np.random.permutation(np.arange(len(df)))
idx = i[:9000]
pd.DataFrame(df.values[idx], df.index[idx])