Pandas의 체계적인 샘플링(예제 포함)
연구자들은 종종 모집단에서 표본을 채취하고 표본의 데이터를 사용하여 모집단 전체에 대한 결론을 도출합니다.
일반적으로 사용되는 샘플링 방법은 체계적인 샘플링 으로, 간단한 2단계 프로세스로 구현됩니다.
1. 모집단의 각 구성원을 특정 순서로 배치합니다.
2. 임의의 시작점을 선택하고 n개 중 하나를 표본의 일부로 선택합니다.
이 튜토리얼에서는 Python의 Pandas DataFrame에서 체계적인 샘플링을 수행하는 방법을 설명합니다.
예: 팬더 간의 체계적인 샘플링
교사가 총 학생 수가 500명인 학교에서 학생 100명의 표본을 얻고 싶다고 가정해 보겠습니다. 그녀는 각 학생을 성을 기준으로 알파벳 순서로 배치하고 무작위로 시작점을 선택한 다음 표본에 포함될 매 5번째 학생을 선택하는 체계적 표본 추출을 사용하기로 선택했습니다.
다음 코드는 Python에서 작업할 가짜 데이터 프레임을 만드는 방법을 보여줍니다.
import pandas as pd import numpy as np import string import random #make this example reproducible n.p. random . seeds (0) #create simple function to generate random last names def randomNames(size=6, chars=string. ascii_uppercase ): return ''. join (random. choice (chars) for _ in range(size)) #createDataFrame df = pd.DataFrame({'last_name': [randomNames() for _ in range(500)], 'GPA': np. random . normal (loc=85, scale=3, size=500)}) #view first six rows of DataFrame df. head () last_name GPA 0 PXGPIV 86.667888 1 JKRRQI 87.677422 2 TRIZTC 83.733056 3 YHUGIN 85.314142 4 ZVUNVK 85.684160
그리고 다음 코드는 체계적인 샘플링을 통해 100명의 학생으로 구성된 샘플을 얻는 방법을 보여줍니다.
#obtain systematic sample by selecting every 5th row sys_sample_df = df. iloc [::5] #view first six rows of DataFrame sys_sample_df. head () last_name gpa 3 ORJFW 88.78065 8 RWPSB 81.96988 13 RACZU 79.21433 18 ZOHKA 80.47246 23 QJETK 87.09991 28 JTHWB 83.87300 #view dimensions of data frame sys_sample_df. shape (100, 2)
샘플에 포함된 첫 번째 멤버는 원본 데이터 프레임의 첫 번째 행에 있었습니다. 샘플의 각 다음 멤버는 이전 멤버 뒤에 5줄 뒤에 위치합니다.
그리고 Shape()를 사용하면 우리가 얻은 체계적 샘플이 100행과 2열의 데이터 프레임임을 알 수 있습니다.