반응형
pandas 행 셔플
Pandas에서 데이터프레임의 행을 무작위로 섞으려면 여러 방법을 사용할 수 있습니다. 주로 sample() 메소드 또는 numpy의 random.permutation()을 사용하여 이 작업을 수행할 수 있습니다. 다음은 각 방법에 대한 설명과 예제입니다.
1. sample() 메소드 사용하기
sample() 메소드를 사용하면 데이터프레임의 행을 무작위로 선택하고, frac=1을 설정함으로써 전체 데이터프레임을 무작위 순서로 섞을 수 있습니다. 이 방법은 가장 간단하고 직관적입니다.
import pandas as pd
# 데이터프레임 생성
df = pd.DataFrame({
'A': range(1, 6),
'B': range(10, 15)
})
# 전체 데이터프레임을 무작위로 섞기
shuffled_df = df.sample(frac=1).reset_index(drop=True)
reset_index(drop=True)를 사용하는 이유는 새로운 인덱스를 할당하고, 기존 인덱스를 삭제하기 위해서입니다.
2. numpy의 random.permutation() 사용하기
numpy의 random.permutation() 함수를 사용하여 인덱스를 무작위로 섞은 다음, 이를 데이터프레임에 적용할 수 있습니다. 이 방법은 sample()과 유사한 결과를 제공하지만, 인덱스를 명시적으로 조작하는 점에서 다릅니다.
import numpy as np
# 인덱스를 무작위로 섞음
shuffled_indices = np.random.permutation(df.index)
# 무작위로 섞인 인덱스로 데이터프레임 재구성
shuffled_df = df.loc[shuffled_indices].reset_index(drop=True)
기타 pandas 기능
반응형
'python' 카테고리의 다른 글
Error: must be real number, not NoneType. moviepy (0) | 2024.06.19 |
---|---|
AttributeError: module 'openai' has no attribute 'OpenAI' (1) | 2024.06.02 |
파이썬에서 재귀 함수의 호출 제한 이해하기 (0) | 2024.05.01 |
ERROR: Could not build wheels for greenlet, which is required to install pyproject.toml-based projects (0) | 2024.04.26 |
AttributeError: 'ImageDraw' object has no attribute 'textsize' (0) | 2024.03.29 |
댓글