Funzione Pandas DataFrame DataFrame.where()

Minahil Noor 30 gennaio 2023
  1. Sintassi di pandas.DataFrame.where()
  2. Codici di esempio: DataFrame.where()
  3. Codici di esempio: DataFrame.where() per specificare un valore
  4. Codici di esempio: DataFrame.where() per utilizzare più condizioni
Funzione Pandas DataFrame DataFrame.where()

La funzione Python Pandas DataFrame.where() accetta una condizione come parametro e produce risultati di conseguenza. Controlla la condizione per ogni valore del DataFrame e seleziona i valori che accettano la condizione. La sua funzionalità è simile all’istruzione if-else. Il valore che non accetta la condizione viene sostituito di default con un valore NaN.

Sintassi di pandas.DataFrame.where()

DataFrame.where(
    cond,
    other=NaN,
    inplace=False,
    axis=None,
    level=None,
    errors="raise",
    try_cast=False,
)

Parametri

Questa funzione ha diversi parametri. I valori di default di tutti i parametri sono menzionati sopra.

cond È un booleano Series o DataFrame, una struttura simile a un array o, un richiamabile. Rappresenta la condizione / le condizioni da controllare per ogni valore del DataFrame. Se la condizione è True, il valore originale non viene sostituito. In caso contrario, viene sostituito da un valore NaN.
other È uno scalare, Series / DataFrame o richiamabile. Rappresenta il valore che verrà posto per il valore originale se la condizione è False.
inplace È un valore booleano. Specifica l’operazione sui dati. Se True, apporta le modifiche da solo.
axis È un valore intero. Specifica l’asse di lavoro righe o colonne.
level È un valore intero. Specifica il livello.
errors È una stringa. Specifica gli errori. Accetta due opzioni: raise o ignore. Se il suo valore è raise, consente di aumentare le eccezioni. Se il suo valore è ignore, ignora le eccezioni e restituisce l’oggetto originale in caso di errore.
try_cast È un valore booleano. Se possibile, esegue il cast dell’output della funzione nel tipo di input originale.

Ritorno

Restituisce il DataFrame modificato a seconda della condizione.

Codici di esempio: DataFrame.where()

Impareremo di più su questa funzione implementandola nel prossimo esempio di codice.

import pandas as pd

dataframe=pd.DataFrame({
                        'A': 
                            {0: 60, 
                            1: 100, 
                            2: 80,
                            3: 78,
                            4: 95,
                            5: 45,
                            6: 67,
                            7: 12,
                            8: 23,
                            9: 50},
                        'B': 
                            {0: 90, 
                            1: 75, 
                            2: 82, 
                            3: 64, 
                            4: 45,
                            5: 35,
                            6: 74,
                            7: 52,
                            8: 93,
                            9: 18}
                        })

print(dataframe)

L’esempio DataFrame è,

     A   B
0   60  90
1  100  75
2   80  82
3   78  64
4   95  45
5   45  35
6   67  74
7   12  52
8   23  93
9   50  18

Questa funzione ha un parametro obbligatorio, cioè cond.

import pandas as pd

dataframe = pd.DataFrame(
    {
        "A": {0: 60, 1: 100, 2: 80, 3: 78, 4: 95, 5: 45, 6: 67, 7: 12, 8: 23, 9: 50},
        "B": {0: 90, 1: 75, 2: 82, 3: 64, 4: 45, 5: 35, 6: 74, 7: 52, 8: 93, 9: 18},
    }
)

dataframe1 = dataframe.where(dataframe > 50)
print(dataframe1)

Produzione:

       A     B
0   60.0  90.0
1  100.0  75.0
2   80.0  82.0
3   78.0  64.0
4   95.0   NaN
5    NaN   NaN
6   67.0  74.0
7    NaN  52.0
8    NaN  93.0
9    NaN   NaN

I valori che non sono maggiori di 50 cioè che non soddisfano la condizione vengono sostituiti da un valore NaN.

Codici di esempio: DataFrame.where() per specificare un valore

import pandas as pd

dataframe = pd.DataFrame(
    {
        "A": {0: 60, 1: 100, 2: 80, 3: 78, 4: 95, 5: 45, 6: 67, 7: 12, 8: 23, 9: 50},
        "B": {0: 90, 1: 75, 2: 82, 3: 64, 4: 45, 5: 35, 6: 74, 7: 52, 8: 93, 9: 18},
    }
)

dataframe1 = dataframe.where(dataframe > 50, other=0)
print(dataframe1)

Produzione:

     A   B
0   60  90
1  100  75
2   80  82
3   78  64
4   95   0
5    0   0
6   67  74
7    0  52
8    0  93
9    0   0

Qui, i valori che non soddisfano la condizione vengono sostituiti da un valore definito dall’utente.

Codici di esempio: DataFrame.where() per utilizzare più condizioni

import pandas as pd

dataframe = pd.DataFrame(
    {
        "A": {0: 60, 1: 100, 2: 80, 3: 78, 4: 95, 5: 45, 6: 67, 7: 12, 8: 23, 9: 50},
        "B": {0: 90, 1: 75, 2: 82, 3: 64, 4: 45, 5: 35, 6: 74, 7: 52, 8: 93, 9: 18},
    }
)

dataframe1 = dataframe.where((dataframe == 80) | (dataframe < 50), other=0)
print(dataframe1)

Produzione:

    A   B
0   0   0
1   0   0
2  80   0
3   0   0
4   0  45
5  45  35
6   0   0
7  12   0
8  23   0
9   0  18

Il DataFrame restituito contiene i valori che soddisfano entrambe le condizioni.

Articolo correlato - Pandas DataFrame