Pandasでデータフレームのサブセットをランダムにサンプリングする質問する

Pandasでデータフレームのサブセットをランダムにサンプリングする質問する

100,000 行のファイルがありpandas DataFrame、それを 100 のセクションに分割し、各セクションに 1,000 行ずつ含めたいと考えています。

100 セクションのうちの 1 つだけから、特定のサイズ (例: 50 行) のランダム サンプルを抽出するにはどうすればよいですか? DF は、最初の 1000 行が最初のセクションから、次の 1000 行が別のセクションから、というように既に順序付けられています。

ベストアンサー1

あなたはsample方法*:

In [11]: df = pd.DataFrame([[1, 2], [3, 4], [5, 6], [7, 8]], columns=["A", "B"])

In [12]: df.sample(2)
Out[12]:
   A  B
0  1  2
2  5  6

In [13]: df.sample(2)
Out[13]:
   A  B
3  7  8
0  1  2

*DataFrames セクションの 1 つ。

注: サンプル サイズが DataFrame のサイズより大きい場合は、置換サンプリングを行わない限りエラーが発生します。

In [14]: df.sample(5)
ValueError: Cannot take a larger sample than population when 'replace=False'

In [15]: df.sample(5, replace=True)
Out[15]:
   A  B
0  1  2
1  3  4
2  5  6
3  7  8
1  3  4

おすすめ記事