-
파이썬 Pandas DataFrame .sample<Python>/[DataFrame] 2023. 3. 8. 16:39728x90
데이터 분석에서는 주어진 데이터에서 표본을 추출하는 경우가 많이 있습니다. 이를 위해 pandas 라이브러리를 사용하여 DataFrame으로부터 무작위로 표본을 추출할 수 있습니다. 이를 위한 여러가지 방법들을 살펴보겠습니다.
728x901. DataFrame으로부터 특정 개수의 표본을 무작위로 추출하기 (number)
pandas 라이브러리의 sample() 메서드를 사용하면 DataFrame으로부터 무작위로 특정 개수의 표본을 추출할 수 있습니다. n 인자에 추출하고자 하는 표본의 개수를 지정합니다.
import pandas as pd df = pd.read_csv('data.csv') sampled_df = df.sample(n=100)
2. DataFrame으로부터 특정 비율의 표본을 무작위로 추출하기 (fraction)
DataFrame으로부터 특정 비율의 표본을 추출하는 경우에는 frac 인자를 사용합니다. frac 인자는 0과 1 사이의 값을 가지며, DataFrame에서 추출하고자 하는 샘플의 비율을 지정합니다.
import pandas as pd df = pd.read_csv('data.csv') sampled_df = df.sample(frac=0.1)
3. DataFrame으로부터 복원 무작위 표본 추출하기 (random sampling with replacement)
복원 무작위 표본 추출은 표본을 추출할 때 해당 표본이 이미 추출되었는지 여부와 상관없이 추출하는 방식입니다. 이를 위해서는 replace 인자를 True로 설정합니다.
import pandas as pd df = pd.read_csv('data.csv') sampled_df = df.sample(n=100, replace=True)
4. DataFrame으로부터 가중치를 부여하여 표본 추출하기 (weights)
DataFrame으로부터 가중치를 부여하여 표본을 추출할 수 있습니다. 이를 위해서는 weights 인자를 사용합니다. weights 인자는 추출하고자 하는 각 표본에 대한 가중치 값을 가지는 Series나 배열을 입력합니다.
import pandas as pd df = pd.read_csv('data.csv') weights = pd.Series([0.3, 0.7, 1.0, 0.5, 0.8]) sampled_df = df.sample(n=3, weights=weights)
5. DataFrame으로부터 칼럼에 대해 무작위 표본 추출하기 (axis=1, axis='column')
Pandas에서는 sample() 메소드를 사용하여 DataFrame에서 무작위 표본을 추출할 수 있습니다. sample() 메소드는 n개의 무작위 행(row)을 추출합니다. sample() 메소드를 활용하여 DataFrame으로부터 무작위 칼럼(column)을 추출하려면, axis 인자를 1 또는 column으로 지정해야 합니다.
import pandas as pd # 예시 데이터프레임 생성 df = pd.DataFrame({'A': [1, 2, 3, 4], 'B': [5, 6, 7, 8], 'C': [9, 10, 11, 12]}) # 칼럼에 대해 무작위 추출 random_column = df.sample(axis=1) print(random_column)
위 코드에서는 sample() 메소드를 사용하여 df DataFrame에서 무작위 칼럼을 추출한 후, random_column 변수에 할당하였습니다.
6. DataFrame으로 부터 특정 칼럼에 대해 무작위 표본 추출한 결과를 numpy array로 할당하기
무작위 추출한 DataFrame을 numpy array로 변환하여 머신러닝 모델에 입력값으로 사용하거나, 다른 계산을 수행하는 등의 용도로 활용할 수 있습니다. DataFrame에서 numpy array로 변환하는 방법은 다음과 같습니다.
import pandas as pd import numpy as np # 예시 데이터프레임 생성 df = pd.DataFrame({'A': [1, 2, 3, 4], 'B': [5, 6, 7, 8], 'C': [9, 10, 11, 12]}) # 특정 칼럼에 대해 무작위 추출 후 numpy array로 변환 random_column_array = df['A'].sample(n=2).to_numpy() print(random_column_array)
위 코드에서는 df DataFrame의 'A' 칼럼에서 2개의 무작위 표본을 추출한 후, to_numpy() 메소드를 사용하여 numpy array로 변환하였습니다.
728x90'<Python> > [DataFrame]' 카테고리의 다른 글
파이썬 Pandas DataFrame 칼럼별 결측값 대체 (0) 2023.03.08 파이썬 Pandas DataFrame .iter (0) 2023.03.08 파이썬 Pandas DataFrame 칼럼 다루기 (0) 2023.03.08 파이썬 Pandas DataFrame 결측치 회귀모형 추정값으로 채우기 (0) 2023.03.08 파이썬 Pandas DataFrame 칼럼 순서를 변경 (0) 2023.03.08