É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

Ajouter un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *