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

Nir*_*tri 5 pandas scikit-learn data-science

我有一个36k行的数据集.我想用pandas从它中随机选择9k行.我该如何完成这项任务?

jez*_*ael 9

我认为你可以使用sample- 9k25%行:

df.sample(n=9000)
Run Code Online (Sandbox Code Playgroud)

要么:

df.sample(frac=0.25)
Run Code Online (Sandbox Code Playgroud)

与创建的随机抽样另一种解决方案index通过numpy.random.choice,然后通过选择loc- index必须是唯一的:

df = df.loc[np.random.choice(df.index, size=9000)]
Run Code Online (Sandbox Code Playgroud)

解决方案如果不是唯一索引

df = df.iloc[np.random.choice(np.arange(len(df)), size=9000)]
Run Code Online (Sandbox Code Playgroud)


piR*_*red 5

numpy

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