Échantillonnage systématique chez les pandas (avec exemples)
Les chercheurs prélèvent souvent des échantillons dans une population et utilisent les données de l’échantillon pour tirer des conclusions sur la population dans son ensemble.
Une méthode d’échantillonnage couramment utilisée est l’échantillonnage systématique , qui est mis en œuvre selon un processus simple en deux étapes :
1. Placez chaque membre d’une population dans un certain ordre.
2. Choisissez un point de départ aléatoire et sélectionnez un membre sur n pour faire partie de l’échantillon.
Ce tutoriel explique comment effectuer un échantillonnage systématique sur un DataFrame pandas en Python.
Exemple : échantillonnage systématique chez les pandas
Supposons qu’un enseignant souhaite obtenir un échantillon de 100 élèves d’une école qui compte 500 élèves au total. Elle choisit d’utiliser un échantillonnage systématique dans lequel elle place chaque élève par ordre alphabétique en fonction de son nom de famille, choisit au hasard un point de départ et sélectionne un élève sur cinq pour faire partie de l’échantillon.
Le code suivant montre comment créer un faux bloc de données avec lequel travailler en Python :
import pandas as pd import numpy as np import string import random #make this example reproducible np.random.seed(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)) #create DataFrame 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
Et le code suivant montre comment obtenir un échantillon de 100 étudiants grâce à un échantillonnage systématique :
#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)
Notez que le premier membre inclus dans l’échantillon se trouvait dans la première ligne du bloc de données d’origine. Chaque membre suivant de l’échantillon est situé 5 lignes après le membre précédent.
Et en utilisant shape() , nous pouvons voir que l’échantillon systématique que nous avons obtenu est un bloc de données de 100 lignes et 2 colonnes.
Ressources additionnelles
Types de méthodes d’échantillonnage
Échantillonnage en grappes chez les pandas
Échantillonnage stratifié chez les pandas