2017-07-19 9 views
3

以下私はcsvファイルを読み込んで、700のランダムサンプルをファイルから取得するコードを持っています。 私は複数のファイルでこれを行う必要がありますが、ファイルを反復処理すると、ランダムに生成されたサンプルはランダムに生成されたものと同じに保たれます。Python Pandasで一貫したランダムサンプルを使用するには?

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 
+0

同じ形状ですか? – ayhan

+0

それらはすべて同じ数の列を持ちますが、行は異なります – Newskooler

答えて

2

私はあなたがrandom_stateパラメータを使用することができると思う:

ファイルの長さが異なっているが、最小ファイルの長さがある

明確化sampleで動作しますが、すべてのファイルのサイズが同じ場合にのみ動作しますので、パラメータnrowsを追加してください〜read_csv

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

'np.random.seed(123)'はどこに割り当てられているか分かりません。あなたは詳細を教えていただけますか?また、 '.sample'にはオプション' random_state'がありますが、どういうことがわかりません。 – Newskooler

+0

大丈夫、私は両方を試してみましたが、同じデータフレームまたは異なるファイルからサンプルを生成すると、同じサンプルサイズを得ることはできません。 – Newskooler

+0

私の質問が更新されましたので、より明確になりました – Newskooler

関連する問題