Pandas DataFrame DataFrame.sample() Fonction

Minahil Noor 30 janvier 2023
  1. Syntaxe de pandas.DataFrame.sample()
  2. Exemples de codes: DataFrame.sample()
  3. Exemples de codes: DataFrame.sample() pour extraire les colonnes
  4. Exemples de codes: DataFrame.sample() pour générer une fraction de données
  5. Exemples de codes: DataFrame.sample() pour suréchantillonner le DataFrame
  6. Exemples de codes: DataFrame.sample() avec weights
Pandas DataFrame DataFrame.sample() Fonction

Python Pandas DataFrame.sample(), la fonction génère un échantillon d’une ligne aléatoire ou d’un colonne d’un DataFrame. L’échantillon peut contenir plusieurs lignes ou colonnes.

Syntaxe de pandas.DataFrame.sample()

DataFrame.sample(
    n=None, frac=None, replace=False, weights=None, random_state=None, axis=None
)

Paramètres

n Il s’agit d’une valeur entière. Il représente le nombre aléatoire de lignes ou de colonnes à sélectionner dans le DataFrame.
frac C’est une valeur float. Il spécifie le pourcentage de lignes ou colonnes aléatoires à extraire du DataFrame. Par exemple, frac = 0.45 signifie que les lignes ou colonnes aléatoires sélectionnées représenteront 45% des données d’origine.
replace Il s’agit d’une valeur booléenne. S’il est défini sur True, il retourne l’échantillon avec le remplacement des données.
weights C’est une chaîne ou une structure de type tableau à N dimensions. S’il est appelé sur un DataFrame, il accepte alors le nom d’une colonne lorsque l’axe est 0. Les lignes avec des valeurs supérieures dans la colonne des poids sont plus susceptibles d’être renvoyées en tant qu’exemples de données.
random_state Il s’agit d’une fonction integer ou numpy.random.RandomState. S’il s’agit d’un entier, il retourne le même nombre de lignes ou de colonnes à chaque itération. Sinon, il retourne un objet numpy.random.RandomState.
axis Il s’agit d’un entier ou d’une chaîne. Il indique l’axe cible soit des lignes soit des colonnes. Ce peut être 0 ou index et 1 ou columns.

Revenir

Il retourne une Series ou un DataFrame. Le Series ou le DataFrame renvoyé est un appelant qui contient n éléments sélectionnés au hasard dans le DataFrame d’origine.

Exemples de codes: DataFrame.sample()

Par défaut, la fonction retourne un échantillon contenant des lignes, c’est-à-dire axis = 1.

import pandas as pd

dataframe=pd.DataFrame({'Attendance': {0: 60, 1: 100, 2: 80,3: 75, 4: 95},
                    'Name': {0: 'Olivia', 1: 'John', 2: 'Laura',3: 'Ben',4: 'Kevin'},
                    'Obtained Marks': {0: 56, 1: 75, 2: 82, 3: 64, 4: 67}})
print(dataframe)

Notre DataFrame ressemble

   Attendance    Name  Obtained Marks
0          60  Olivia              56
1         100    John              75
2          80   Laura              82
3          75     Ben              64
4          95   Kevin              67

Tous les paramètres de cette fonction sont facultatifs. Si nous exécutons cette fonction sans passer aucun paramètre, elle retourne une seule ligne aléatoire en sortie.

import pandas as pd

dataframe = pd.DataFrame(
    {
        "Attendance": {0: 60, 1: 100, 2: 80, 3: 75, 4: 95},
        "Name": {0: "Olivia", 1: "John", 2: "Laura", 3: "Ben", 4: "Kevin"},
        "Obtained Marks": {0: 56, 1: 75, 2: 82, 3: 64, 4: 67},
    }
)
dataframe1 = dataframe.sample()
print(dataframe1)

Production 1:

   Attendance Name  Obtained Marks
3          75  Ben              64

Production 2:

   Attendance   Name  Obtained Marks
4          95  Kevin              67

Production 1 et Production 2 montrent l’exécution du même programme deux fois. Chaque fois que cette fonction génère un échantillon aléatoire de lignes à partir du DataFrame donné.

Exemples de codes: DataFrame.sample() pour extraire les colonnes

Pour générer des colonnes dans un échantillon, nous allons simplement changer notre axe à 1.

import pandas as pd

dataframe = pd.DataFrame(
    {
        "Attendance": {0: 60, 1: 100, 2: 80, 3: 75, 4: 95},
        "Name": {0: "Olivia", 1: "John", 2: "Laura", 3: "Ben", 4: "Kevin"},
        "Obtained Marks": {0: 56, 1: 75, 2: 82, 3: 64, 4: 67},
    }
)
dataframe1 = dataframe.sample(n=1, axis=1)
print(dataframe1)

Production:

     Name
0  Olivia
1    John
2   Laura
3     Ben
4   Kevin

La fonction a généré un échantillon d’une seule colonne en sortie. Le nombre de colonnes a été défini par le paramètre n = 1.

Exemples de codes: DataFrame.sample() pour générer une fraction de données

import pandas as pd

dataframe = pd.DataFrame(
    {
        "Attendance": {0: 60, 1: 100, 2: 80, 3: 75, 4: 95},
        "Name": {0: "Olivia", 1: "John", 2: "Laura", 3: "Ben", 4: "Kevin"},
        "Obtained Marks": {0: 56, 1: 75, 2: 82, 3: 64, 4: 67},
    }
)
dataframe1 = dataframe.sample(frac=0.5)
print(dataframe1)

Production:

   Attendance   Name  Obtained Marks
3          75    Ben              64
4          95  Kevin              67
1         100   John              75

L’échantillon renvoyé représente 50% des données d’origine.

Exemples de codes: DataFrame.sample() pour suréchantillonner le DataFrame

Si frac> 1, alors le paramètre replace devrait être True pour permettre que la même ligne puisse être échantillonnée plus d’une fois; sinon, il déclenchera une ValueError.

import pandas as pd

dataframe = pd.DataFrame(
    {
        "Attendance": {0: 60, 1: 100, 2: 80, 3: 75, 4: 95},
        "Name": {0: "Olivia", 1: "John", 2: "Laura", 3: "Ben", 4: "Kevin"},
        "Obtained Marks": {0: 56, 1: 75, 2: 82, 3: 64, 4: 67},
    }
)
dataframe1 = dataframe.sample(frac=1.5, replace=True)
print(dataframe1)

Production:

   Attendance   Name  Obtained Marks
3          75     Ben              64
0          60  Olivia              56
1         100    John              75
2          80   Laura              82
1         100    John              75
2          80   Laura              82
0          60  Olivia              56
4          95   Kevin              67

Si replace est réglé sur False alors que frac est plus grand que 1, alors il déclenche une ValueError.

import pandas as pd

dataframe = pd.DataFrame(
    {
        "Attendance": {0: 60, 1: 100, 2: 80, 3: 75, 4: 95},
        "Name": {0: "Olivia", 1: "John", 2: "Laura", 3: "Ben", 4: "Kevin"},
        "Obtained Marks": {0: 56, 1: 75, 2: 82, 3: 64, 4: 67},
    }
)
dataframe1 = dataframe.sample(frac=1.5, replace=False)
print(dataframe1)

Production:

Traceback (most recent call last):
  File "..\test.py", line 6, in <module>
    dataframe1 = dataframe.sample(frac=1.5, replace=False)
  File "..\lib\site-packages\pandas\core\generic.py", line 5044, in sample
    raise ValueError(
ValueError: Replace has to be set to `True` when upsampling the population `frac` > 1.

Exemples de codes: DataFrame.sample() avec weights

import pandas as pd

dataframe = pd.DataFrame(
    {
        "Attendance": {0: 60, 1: 100, 2: 80, 3: 75, 4: 95},
        "Name": {0: "Olivia", 1: "John", 2: "Laura", 3: "Ben", 4: "Kevin"},
        "Obtained Marks": {0: 56, 1: 75, 2: 82, 3: 64, 4: 67},
    }
)
dataframe1 = dataframe.sample(n=2, weights="Attendance")
print(dataframe1)

Production:

   Attendance   Name  Obtained Marks
1         100   John              75
4          95  Kevin              67

Ici, les lignes avec des valeurs plus élevées dans la colonne Attendance sont sélectionnées dans l’échantillon renvoyé.

Article connexe - Pandas DataFrame