Funzione Pandas DataFrame DataFrame.sample()

Minahil Noor 30 gennaio 2023
  1. Sintassi di pandas.DataFrame.sample()
  2. Codici di esempio: DataFrame.sample()
  3. Codici di esempio: DataFrame.sample() per estrarre le colonne
  4. Codici di esempio: DataFrame.sample() per generare una frazione di dati
  5. Codici di esempio: DataFrame.sample() per sovracampionare il DataFrame
  6. Codici di esempio: DataFrame.sample() con weights
Funzione Pandas DataFrame DataFrame.sample()

La funzione Python Pandas DataFrame.sample() genera un campione di una riga casuale o di una colonna da un DataFrame. Il campione può contenere più di una riga o colonna.

Sintassi di pandas.DataFrame.sample()

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

Parametri

n È un numero intero. Rappresenta il numero casuale di righe o colonne da selezionare dal DataFrame.
frac È un valore float. Specifica la percentuale di righe o colonne casuali da estrarre dal DataFrame. Ad esempio, frac=0.45 significa che le righe o le colonne casuali selezionate saranno il 45% dei dati originali.
replace È un valore booleano. Se è impostato su True, restituisce il campione con la sostituzione dei dati.
weights È una stringa o una struttura tipo array a N dimensioni. Se viene chiamato su un DataFrame, accetta il nome di una colonna quando l’asse è 0. È più probabile che le righe con valori maggiori nella colonna dei pesi vengano restituite come dati di esempio.
random_state È un numero intero o una funzione numpy.random.RandomState. Se è un numero intero, restituisce lo stesso numero di righe o colonne in ogni iterazione. Altrimenti, restituisce un oggetto numpy.random.RandomState.
axis È un numero intero o una stringa. Specifica l’asse di destinazione righe o colonne. Può essere 0 o indice e 1 o colonne.

Ritorno

Restituisce una serie o un DataFrame. La Series o DataFrame restituita è un chiamante che contiene n elementi selezionati casualmente dal DataFrame originale.

Codici di esempio: DataFrame.sample()

Per impostazione predefinita, la funzione restituisce un campione contenente righe, ovvero 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)

Il nostro DataFrame è il seguente.

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

Tutti i parametri di questa funzione sono opzionali. Se eseguiamo questa funzione senza passare alcun parametro, restituisce una singola riga casuale come output.

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)

Uscita1:

   Attendance Name  Obtained Marks
3          75  Ben              64

Uscita 2:

   Attendance   Name  Obtained Marks
4          95  Kevin              67

Outpt1 e output2 mostrano due volte l’esecuzione dello stesso programma. Ogni volta che questa funzione genera un campione casuale di righe dal dato DataFrame.

Codici di esempio: DataFrame.sample() per estrarre le colonne

Per generare colonne in un campione, cambieremo semplicemente il nostro asse in 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)

Produzione:

     Name
0  Olivia
1    John
2   Laura
3     Ben
4   Kevin

La funzione ha generato un campione di una singola colonna come output. Il numero di colonne è stato impostato dal parametro n=1.

Codici di esempio: DataFrame.sample() per generare una frazione di dati

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)

Produzione:

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

Il campione restituito è il 50% dei dati originali.

Codici di esempio: DataFrame.sample() per sovracampionare il DataFrame

Se frac>1, il parametro sostituisci dovrebbe essere True per consentire che la stessa riga possa essere campionata più di una volta; altrimenti, solleverà un 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)

Produzione:

   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

Se replace è impostato come False, nel frattempo frac è maggiore di 1, allora solleva un 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)

Produzione:

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.

Codici di esempio: DataFrame.sample() con 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)

Produzione:

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

Qui, le righe con valori maggiori nella colonna Attendance vengono selezionate nel campione restituito.

Articolo correlato - Pandas DataFrame