[python] 판다스를 이용한 데이터 분할과 샘플링

이번 포스트에서는 판다스의 데이터프레임을 이용하여 데이터를 분할하고 샘플링하는 방법에 대해 알아보겠습니다.

데이터 분할

1. 특정 비율로 데이터 분할하기

판다스의 sample 메서드를 사용하여 특정 비율로 데이터를 분할할 수 있습니다. 아래의 예시는 데이터프레임을 80:20의 비율로 훈련 데이터와 테스트 데이터로 분할하는 방법입니다.

train_data = df.sample(frac=0.8, random_state=1)
test_data = df.drop(train_data.index)

2. 랜덤하게 데이터 분할하기

데이터를 랜덤하게 분할하기 위해서는 sample 메서드 대신 shuffle 메서드를 사용합니다.

shuffled_data = df.sample(frac=1, random_state=1)
train_size = int(0.8 * len(shuffled_data))
train_data = shuffled_data.iloc[:train_size]
test_data = shuffled_data.iloc[train_size:]

데이터 샘플링

1. 랜덤 샘플링

sample 메서드를 사용하여 데이터프레임에서 랜덤하게 샘플을 추출할 수 있습니다.

sampled_data = df.sample(n=5, random_state=1)

2. 계층적 샘플링

계층적 샘플링을 수행하려면 groupby 메서드를 사용하여 데이터를 그룹화한 다음, 각 그룹에서 샘플을 추출합니다.

stratified_sampled_data = df.groupby('category', group_keys=False).apply(lambda x: x.sample(min(len(x), 2)))

이렇게 판다스를 사용하면 데이터를 쉽게 분할하고 샘플링할 수 있습니다. 데이터 분석 및 머신러닝 모델링 시 유용하게 활용할 수 있는 판다스의 유용한 기능 중 하나입니다.

더 자세한 내용은 여기를 참조하세요: