Personnaliser les préférences

Nous utilisons des cookies pour vous aider à naviguer efficacement et à exécuter certaines fonctions. Vous trouverez ci-dessous des informations détaillées sur tous les cookies sous chaque catégorie de consentement.

Les cookies classés comme « Nécessaires » sont stockés sur votre navigateur car ils sont essentiels pour activer les fonctionnalités de base du site.... 

Toujours actif

Necessary cookies are required to enable the basic features of this site, such as providing secure log-in or adjusting your consent preferences. These cookies do not store any personally identifiable data.

Aucun cookie à afficher.

Functional cookies help perform certain functionalities like sharing the content of the website on social media platforms, collecting feedback, and other third-party features.

Aucun cookie à afficher.

Analytical cookies are used to understand how visitors interact with the website. These cookies help provide information on metrics such as the number of visitors, bounce rate, traffic source, etc.

Aucun cookie à afficher.

Performance cookies are used to understand and analyze the key performance indexes of the website which helps in delivering a better user experience for the visitors.

Aucun cookie à afficher.

Advertisement cookies are used to provide visitors with customized advertisements based on the pages you visited previously and to analyze the effectiveness of the ad campaigns.

Aucun cookie à afficher.

Pandas : Comment échantillonner des lignes avec remplacement



Vous pouvez utiliser l’argument replace=True dans la fonction pandas sample() pour échantillonner aléatoirement les lignes d’un DataFrame avec remplacement :

#randomly select n rows with repeats allowed
df.sample(n=5, replace=True) 

En utilisant replace=True , vous autorisez l’inclusion de la même ligne dans l’échantillon plusieurs fois.

L’exemple suivant montre comment utiliser cette syntaxe dans la pratique.

Exemple : exemples de lignes avec remplacement dans Pandas

Supposons que nous ayons le DataFrame pandas suivant qui contient des informations sur divers joueurs de basket-ball :

import pandas as pd

#create DataFrame
df = pd.DataFrame({'team': ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H'],
                   'points': [18, 22, 19, 14, 14, 11, 20, 28],
                   'assists': [5, 7, 7, 9, 12, 9, 9, 4],
                   'rebounds': [11, 8, 10, 6, 6, 5, 9, 12]})
                   
#view DataFrame
print(df)

  team  points  assists  rebounds
0    A      18        5        11
1    B      22        7         8
2    C      19        7        10
3    D      14        9         6
4    E      14       12         6
5    F      11        9         5
6    G      20        9         9
7    H      28        4        12

Supposons que nous utilisions la fonction sample() pour sélectionner aléatoirement un échantillon de lignes :

#randomly select 6 rows from DataFrame (without replacement)
df.sample(n=6, random_state=0)

        team	points	assists	rebounds
6	G	20	9	9
2	C	19	7	10
1	B	22	7	8
7	H	28	4	12
3	D	14	9	6
0	A	18	5	11

Notez que six lignes ont été sélectionnées dans le DataFrame et qu’aucune des lignes n’apparaît plusieurs fois dans l’échantillon.

Remarque : L’argument random_state=0 garantit que cet exemple est reproductible.

Supposons maintenant que nous utilisions l’argument replace=True pour sélectionner un échantillon aléatoire de lignes avec remplacement :

#randomly select 6 rows from DataFrame (with replacement)
df.sample(n=6, replace=True, random_state=0)

        team	points	assists	rebounds
4	E	14	12	6
7	H	28	4	12
5	F	11	9	5
0	A	18	5	11
3	D	14	9	6
3	D	14	9	6

Notez que la ligne avec l’équipe « D » apparaît plusieurs fois.

En utilisant l’argument replace=True , nous permettons à la même ligne d’apparaître plusieurs fois dans l’échantillon.

Notez également que nous pourrions sélectionner une fraction aléatoire du DataFrame à inclure dans l’échantillon en utilisant l’argument frac .

Par exemple, l’exemple suivant montre comment sélectionner 75 % des lignes à inclure dans l’échantillon avec remplacement :

#randomly select 75% of rows (with  replacement)
df.sample(frac=0.75, replace=True, random_state=0) 

        team	points	assists	rebounds
4	E	14	12	6
7	H	28	4	12
5	F	11	9	5
0	A	18	5	11
3	D	14	9	6
3	D	14	9	6

Notez que 75 % du nombre de lignes (6 sur 8) ont été incluses dans l’échantillon et qu’au moins une des lignes (avec l’équipe « D ») est apparue deux fois dans l’échantillon.

Remarque : Vous pouvez trouver la documentation complète de la fonction pandas sample() ici .

Ressources additionnelles

Les didacticiels suivants expliquent comment exécuter d’autres méthodes d’échantillonnage courantes dans Pandas :

Comment effectuer un échantillonnage stratifié chez les pandas
Comment effectuer un échantillonnage de cluster dans Pandas

Ajouter un commentaire

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