Python Library/Pandas

[Pandas - Python] Permutation and Random Sampling - permutation(), sample() (순열 및 무작위 샘플링)

바보1 2022. 6. 14. 01:01

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