Permutation and Random Sampling - permutation(), sample()
랜덤 순열을 이용하여 데이터를 볼 수 있습니다.
df = pd.DataFrame(np.arange(5 * 4).reshape((5, 4)))
sampler = np.random.permutation(5)
sampler
array([4, 0, 2, 3, 1])
이처럼 5개의 순열을 랜덤으로 섞은 뒤, df.take(sampler)를 하면 행이 섞입니다.
df.take(sampler)
0 1 2 3
4 16 17 18 19
0 0 1 2 3
2 8 9 10 11
3 12 13 14 15
1 4 5 6 7
만약 df에서 랜덤으로 3개를 샘플링 하고 싶다면, sample(n = 3)을 쓰면 됩니다.
df.sample(n=3)
0 1 2 3
4 16 17 18 19
1 4 5 6 7
2 8 9 10 11
랜덤으로 뽑을 숫자가 전체 데이터보다 크다면, 중복으로 뽑게 됩니다.
choices = pd.Series([5, 7, -1, 6, 4])
draws = choices.sample(n=10, replace=True)
draws
1 7
4 4
2 -1
0 5
3 6
1 7
2 -1
2 -1
0 5
0 5
dtype: int64