Introduzione a Pandas.Dropna ()

La libreria open source Pandas di Python è senza dubbio la libreria più utilizzata per la scienza e l'analisi dei dati. È anche un pacchetto preferibile per operazioni di manipolazione dei dati ad hoc. Il merito va alla sua rappresentazione dei dati estremamente flessibile utilizzando DataFrames e l'arsenale di funzioni esposte alla manipolazione dei dati presenti in questi frame di dati. Eventuali problemi di dati nella vita reale causeranno il problema dei dati mancanti ed è indispensabile che tali punti dati vengano gestiti nel modo giusto. La gestione dei dati mancanti in qualsiasi modo adatto è supportata da questa funzione, Pandas.Dropna () .

Cosa sono esattamente i Pandas.Dropna ()?

È possibile fare riferimento alla pagina Pydata per la definizione della funzione ufficiale.

L'intestazione della funzione mostrata è la seguente (insieme ai valori dei parametri predefiniti):

DataFrame.dropna(self, axis=0, how='any', thresh=None, subset=None, inplace=False)

I parametri (esclusi, self (l'oggetto frame di dati stesso)) mostrati nella definizione della funzione sono i seguenti:

  • asse: si riferisce all'orientamento (riga o colonna) in cui vengono rilasciati i dati. I valori possibili sono 0 o 1 (anche 'indice' o 'colonne' rispettivamente). 0 / 'indice' rappresenta le righe di rilascio e 1 / 'colonne' rappresentano le colonne di rilascio.
  • how: specifica lo scenario in cui la colonna / riga contenente il valore null deve essere eliminata. I valori sono "qualsiasi" o "tutto". 'all' elimina la riga / colonna solo se tutti i valori nella riga / colonna sono nulli. 'any' elimina la riga / colonna quando almeno un valore nella riga / colonna è nullo.
  • trebbia: specifica il numero minimo di valori non NA in riga / colonna affinché possa essere considerato nel risultato finale. Qualsiasi riga / colonna con il numero di valori non NA <valore trebbia viene rimosso indipendentemente dagli altri parametri passati. Quando thresh = none, questo filtro viene ignorato.
  • sottoinsieme: axis specifica se le righe / colonne devono essere eliminate. il sottoinsieme prende rispettivamente un elenco di colonne / righe (opposte all'asse) che devono essere ricercate per valori Null / NA invece di un intero elenco di colonne / righe rispettivamente.
  • sul posto: come buona prassi, il DataFrame originale (o la rappresentazione dei dati) non viene modificato, ma viene restituita una copia separata con le modifiche (ovvero righe / colonne rilasciate). l'attributo inplace ti dà la flessibilità di modificare la struttura stessa dei dati originali.

Ora che abbiamo un'idea generale dei parametri esposti da dropna (), vediamo alcuni possibili scenari di dati mancanti e come li affrontiamo.

Esempi di casi d'uso di Pandas.Dropna ()

Di seguito sono riportati gli esempi di pandas.dropna ():

Panda di importazione: per utilizzare Dropna (), è necessario un DataFrame. Per creare un DataFrame, la libreria del panda deve essere importata (nessuna sorpresa qui). Lo importeremo con un pd alias per fare riferimento a oggetti nel modulo comodamente. Per definire i valori null, ci atterremo a numpy.nan. Quindi importeremo la libreria numpy con un alias np:

Codice:

In (1): import pandas as pd
In (2): import numpy as np

1. Creare un oggetto DataFrame per la manipolazione

Al momento dell'importazione dei panda, tutti i metodi, le funzioni e i costruttori sono disponibili nell'area di lavoro. Quindi creiamo un DataFrame che può aiutarci a dimostrare l'uso di dropna ().

Codice:

In (3): df = pd.DataFrame(
('Company':('Google', 'Amazon', 'Infosys', 'Directi'),
'Age':('21', '23', '38', '22'),
'NetWorth ($ bn)':(300, np.nan, np.nan, 1.3),
'Founder':(np.nan, np.nan, np.nan, np.nan),
'Headquarter-Country':('United States', np.nan, 'India', 'India') ))
In (4): print(df)
Company Age NetWorth ($ bn) Founder Headquarter-Country
0 Google 21 300.0 NaN United States
1 Amazon 23 NaN NaN NaN
2 Infosys 38 NaN NaN India
3 Directi 22 1.3 NaN India

Il DataFrame stampato verrà manipolato nella nostra dimostrazione di seguito.

2. Rilascio di righe contro colonne

Il parametro axis viene utilizzato per eliminare righe o colonne come mostrato di seguito:

Codice:

In (5): df.dropna(axis=1)

Produzione:

Out(5):
Company Age
0 Google 21
1 Amazon 23
2 Infosys 38
3 Directi 22

Qualsiasi colonna contenente almeno 1 NaN come valore della cella viene eliminata. Vediamo come funzioneranno le righe (axis = 0).
Nota : questo è il comportamento predefinito quando l'asse non è specificato esplicitamente.

Codice:

In (6): df.dropna(axis=0)

Produzione:

Out(6):
Empty DataFrame
Columns: (Company, Age, NetWorth ($ bn), Founder, Headquarter-Country) Index: ()

Hmm, quindi non ci sono più dati nel DataFrame restituito! Questo ovviamente non è il comportamento previsto. Vediamo come risolvere questo.

3. Utilizzo dell'attributo del sottoinsieme

Le operazioni precedenti erano in calo in base a tutte le colonne quando axis = 0. Poiché esiste una colonna Founder che ha solo valori null, tutte le righe vengono eliminate. Specifichiamo una colonna da utilizzare per il filtro:

Codice:

In (7): df.dropna(axis=0, subset=('NetWorth ($ bn)'))

Produzione:

Out(7):
Company Age NetWorth ($ bn) Founder Headquarter-Country
0 Google 21 300.0 NaN United States
3 Directi 22 1.3 NaN India

Ora, come vediamo, vengono eliminati solo i record con Nanvalue nella colonna Networth. Il DataFrame restituito può essere nuovamente modificato applicando nuovamente dropna () per filtrare le colonne passando axis = 1.

4. Utilizzo di How Parameter

Per impostazione predefinita, dropna () elimina l'intera riga / colonna anche se manca solo 1 valore. Un rapido rovescio esposto è quello di rilasciare solo quando tutti i valori in una riga / colonna sono nulli. Ciò si ottiene impostando how = 'all' invece di how = 'any' (comportamento predefinito).

Codice:

In (8): df.dropna(axis=1, how='all')

Produzione:

Out(8):
Company Age NetWorth ($ bn) Headquarter-Country
0 Google 21 300.0 United States
1 Amazon 23 NaN NaN
2 Infosys 38 NaN India
3 Directi 22 1.3 India

Ora il DataFrame risultante può essere utilizzato per eliminare righe / colonne con una logica più complessa, se necessario.

5. Ottenere il controllo attraverso Thresh

Il parametro trebbia, è probabilmente lo strumento più potente se combinato con il resto in modo appropriato.

Codice:

In (17): df.dropna(axis=1, thresh=2)

Produzione:

Out(17):
Company Age NetWorth ($ bn) Headquarter-Country
0 Google 21 300.0 United States
1 Amazon 23 NaN NaN
2 Infosys 38 NaN India
3 Directi 22 1.3 India

Impostando axis = 1 e thresh = 2, vengono mantenute solo quelle colonne con almeno 2 valori non NaN.

Conclusione

Gli esempi mostrati sopra sono di natura semplicistica, ma sono abbastanza potenti da affrontare la maggior parte dei problemi sui quali potresti imbatterti nelle situazioni della vita reale. Tuttavia, si dovrebbe esercitarsi nella combinazione di parametri diversi per avere una comprensione cristallina del loro utilizzo e costruire velocità nella loro applicazione.

Articoli consigliati

Questa è una guida a Pandas.Dropna (). Qui discutiamo cos'è Pandas.Dropna (), i parametri e gli esempi. Puoi anche consultare i nostri altri articoli correlati per saperne di più-

  1. Cosa sono i panda
  2. PNL in Python
  3. Classe astratta in Python
  4. Fattoriale in Python
  5. Programma fattoriale in JavaScript

Categoria: