如何在Python Pandas中使用一致的随机样本?

时间:2017-07-19 12:58:49

标签: python pandas random

下面我有一个代码,其中读取csv文件并从文件中随机抽取700。 我需要在多个文件上执行此操作,但是如果我遍历文件,则每个文件的样本(因为它是随机的)将是不同的,我希望它一旦随机生成就保持不变。 / p>

df = pd.read_csv(file.csv, delim_whitespace=True)
df_s = df.sample(n=700)

我的想法是获取行号,然后将其传递给下一个文件,但这似乎不是很优雅。

你知道这个问题有什么好的解决方案吗?

澄清

文件长度不同,但文件长度最小:750。

期望的结果示例

df1 = pd.read_csv(file1.csv, delim_whitespace=True)
df_s1 = df1.sample(n=700) # choose random sample

df2 = pd.read_csv(file2.csv, delim_whitespace=True)
df_s2 = df2.sample(n=700) # use same random sample as above

1 个答案:

答案 0 :(得分:6)

我认为您可以在sample中使用random_state参数,但仅当所有文件的大小相同时才有效,因此请将参数nrows添加到read_csv

df = pd.read_csv(file.csv, delim_whitespace=True, nrows=750)
df_s = df.sample(n=700, random_state=123)