Funzione Pandas DataFrame DataFrame.dropna()

Minahil Noor 30 gennaio 2023
  1. Sintassi di pandas.DataFrame.dropna()
  2. Codici di esempio: DataFrame.dropna() per eliminare la riga
  3. Codici di esempio: DataFrame.dropna() per rilasciare la colonna
  4. Codici di esempio: DataFrame.dropna() con how=all
  5. Codici di esempio: DataFrame.dropna() con un sottoinsieme o una soglia specificati
  6. Codici di esempio: DataFrame.dropna() con inplace=True
Funzione Pandas DataFrame DataFrame.dropna()

La funzione pandas.DataFrame.dropna() rimuove i valori nulli (valori mancanti) dal DataFrame rilasciando le righe o le colonne contenenti i valori nulli.

NaN (not a number) e NaT (Not a Time) rappresentano i valori nulli. DataFrame.dropna() rileva questi valori e filtra di conseguenza il DataFrame.

Sintassi di pandas.DataFrame.dropna()

DataFrame.dropna(axis, how, thresh, subset, inplace)

Parametri

axis Determina che l’asse sia riga o colonna.
Se è 0 o 'index', elimina le righe contenenti valori mancanti.
Se è 1 o 'columns', elimina le colonne contenenti i valori mancanti. Per impostazione predefinita, il suo valore è 0.
how Questo parametro determina il modo in cui la funzione rilascia righe o colonne. Accetta solo due strings, any o all. Per impostazione predefinita, è impostato su any.
any elimina la riga o la colonna se contiene un valore nullo.
all elimina la riga o la colonna se mancano tutti i valori.
thresh È un numero intero che specifica il numero minimo di valori non mancanti che impediscono l’eliminazione di righe o colonne.
subset È un array che ha i nomi di righe o colonne per specificare la procedura di rilascio.
inplace È un valore booleano che cambia il chiamante DataFrame se impostato su True. Per impostazione predefinita, il suo valore è False.

Ritorno

Restituisce un DataFrame filtrato con righe o colonne rilasciate in base ai parametri passati.

Codici di esempio: DataFrame.dropna() per eliminare la riga

Per impostazione predefinita, l’asse è 0 cioè righe, quindi tutti gli output hanno righe eliminate.

import pandas as pd

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

L’esempio DataFrame è il seguente.

   Attendance    Name  Obtained Marks
0        60.0  Olivia             NaN
1         NaN    John            75.0
2        80.0   Laura            82.0
3         NaN     Ben            64.0
4        95.0   Kevin             NaN

Tutti i parametri di questa funzione sono opzionali. Se non passiamo alcun parametro, la funzione elimina tutte le righe contenenti un singolo valore nullo.

import pandas as pd

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

Produzione:

   Attendance   Name  Obtained Marks
2        80.0  Laura            82.0

Ha eliminato tutte le righe che contenevano un singolo valore mancante.

Codici di esempio: DataFrame.dropna() per rilasciare la colonna

import pandas as pd

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

print(dataframe1)

Produzione:

     Name
0  Olivia
1    John
2   Laura
3     Ben
4   Kevin

Ha eliminato tutte le colonne che contenevano un singolo valore mancante perché abbiamo impostato axis=1 nel metodo DataFrame.dropna().

Codici di esempio: DataFrame.dropna() con how=all

import pandas as pd

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

dataframe1 = dataframe.dropna(axis=1, how="all")
print(dataframe1)

Produzione:

   Attendance    Name  Obtained Marks
0        60.0  Olivia             NaN
1         NaN    John            75.0
2        80.0   Laura            82.0
3         NaN     Ben            64.0
4        95.0   Kevin             NaN

Le righe contenenti i valori mancanti non vengono eliminate perché il parametro how ha un valore impostato su all, il che significa che tutti i valori della riga devono essere nulli.

Se tutti i valori mancano nell’asse specificato, il metodo DataFrame.dropna() elimina quell’asse anche quando il how è impostato su all.

import pandas as pd

dataframe = pd.DataFrame(
    {
        "Attendance": {0: 60, 1: None, 2: 80, 3: None, 4: 95},
        "Name": {0: "Olivia", 1: "John", 2: "Laura", 3: "Ben", 4: "Kevin"},
        "Obtained Marks": {0: None, 1: None, 2: None, 3: None, 4: None},
    }
)

print(dataframe)
print("--------")
dataframe1 = dataframe.dropna(axis=1, how="all")
print(dataframe1)

Produzione:

   Attendance    Name Obtained Marks
0        60.0  Olivia           None
1         NaN    John           None
2        80.0   Laura           None
3         NaN     Ben           None
4        95.0   Kevin           None
--------
   Attendance    Name
0        60.0  Olivia
1         NaN    John
2        80.0   Laura
3         NaN     Ben
4        95.0   Kevin

Codici di esempio: DataFrame.dropna() con un sottoinsieme o una soglia specificati

import pandas as pd

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

dataframe1 = dataframe.dropna(thresh=3)
print(dataframe1)

Produzione:

   Attendance   Name  Obtained Marks
2        80.0  Laura            82.0

Il valore di thresh è 3, il che significa che per evitare cadute, sono richiesti almeno 3 valori non vuoti.

Potremmo anche specificare il subset.

import pandas as pd

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

dataframe1 = dataframe.dropna(subset=["Attendance", "Name"])
print(dataframe1)

Produzione:

   Attendance    Name  Obtained Marks
0        60.0  Olivia             NaN
2        80.0   Laura            82.0
4        95.0   Kevin             NaN

Elimina le righe con valori mancanti sulla base delle colonne Attendance e Name. Non rilascia righe se solo i valori in altre colonne, qui Obtained Marks, hanno valori mancanti.

Codici di esempio: DataFrame.dropna() con inplace=True

DataFrame.dropna() cambia il chiamante DataFrame sul posto se inplace è impostato su True.

import pandas as pd

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

Produzione:

None

Il parametro ha modificato il chiamante DataFrame sul posto e ha restituito None.

Articolo correlato - Pandas DataFrame