如何使用pandas从数据集中随机选择行?

8

我有一个包含36k行数据的数据集,想要使用pandas随机选择其中的9k行。如何完成这个任务?


我是 Stack Overflow 的新手。我会做到的。我已经点击了上箭头。希望您收到了我的赞 :-) - Niranjan Agnihotri
谢谢,你做得很对;-) - piRSquared
真的是一个重复的问题:https://dev59.com/LmUo5IYBdhLWcg3wmAWi 参考最后一个答案。 - EdChum
2个回答

14

我认为您可以使用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)]

如何获得补集? - 3pitt

7

numpy

i = np.random.permutation(np.arange(len(df)))
idx = i[:9000]
pd.DataFrame(df.values[idx], df.index[idx])

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接