10 Funzioni Essenziali di Pandas Che Ogni Data Scientist Dovrebbe Conoscere

10 Funzioni Essenziali di Pandas Che Ogni Data Scientist Dovrebbe Conoscere

 

Nel mondo di oggi, basato sui dati, l’analisi e le intuizioni aiutano a ottenere il massimo e migliorare le decisioni. Dal punto di vista aziendale, fornisce un vantaggio competitivo e personalizza l’intero processo.

In questo tutorial esploreremo la libreria Python più potente, pandas, e discuteremo le funzioni più importanti di questa libreria per l’analisi dei dati. Anche i principianti possono seguire questo tutorial per la sua semplicità ed efficienza. Se non hai installato Python nel tuo sistema, puoi utilizzare Google Colaboratory.

 

Importazione dei dati

 

Puoi scaricare il dataset da questo link.

import pandas as pddf = pd.read_csv("kaggle_sales_data.csv", encoding="Latin-1")  # Carica i dati df.head()  # Mostra le prime cinque righe

 

Output:

 

 

Esplorazione dei dati

 

In questa sezione, discuteremo varie funzioni che ti aiutano a ottenere maggiori informazioni sui tuoi dati. Ad esempio, visualizzarli o ottenere la media, il minimo/massimo o ottenere informazioni sul dataframe.

 

1. Visualizzazione dei dati

 

  1. df.head(): Visualizza le prime cinque righe dei dati di esempio

  

  1. df.tail(): Visualizza le ultime cinque righe dei dati di esempio

  

  1. df.sample(n): Visualizza n righe casuali dei dati di esempio
df.sample(6)

 

 

  1. df.shape: Visualizza le righe e le colonne (dimensioni) dei dati di esempio.
(2823, 25)

 

Significa che il nostro dataset ha 2823 righe, ognuna contenente 25 colonne.

 

2. Statistiche

 

Questa sezione contiene le funzioni che ti aiutano a eseguire statistiche come la media, minimo/massimo e quartili sui tuoi dati.

  1. df.describe(): Ottieni le statistiche di base di ogni colonna dei dati di esempio

  

  1. df.info(): Ottieni le informazioni sui diversi tipi di dati utilizzati e il conteggio non nullo di ogni colonna.

      

  2. df.corr(): Questa funzione restituisce la matrice di correlazione tra tutte le colonne integer nel dataframe.

  

  1. df.memory_usage(): Indica quanto memoria viene consumata da ogni colonna.

 

 

3. Selezione dei dati

 

È possibile selezionare i dati di una specifica riga, colonna o addirittura colonne multiple.

  1. df.iloc[row_num]:  Seleziona una specifica riga in base al suo indice

Ad es.

df.iloc[0]

 

  1. df[col_name]: Seleziona la colonna specifica

Ad es.

df["SALES"]

 

Output:

  

  1. df[[‘col1’, ‘col2’]]: Seleziona più colonne dati

Ad es.

df[["SALES", "PRICEEACH"]]

 

Output:

 

 

4. Pulizia dei dati

 

Queste funzioni vengono utilizzate per gestire i dati mancanti. Alcune righe dei dati contengono alcuni valori nulli e indesiderati, che possono compromettere le prestazioni del nostro modello addestrato. Pertanto, è sempre meglio correggere o rimuovere questi valori mancanti.

  1. df.isnull(): Identifica i valori mancanti nel tuo dataframe.
  2. df.dropna(): Rimuove le righe contenenti valori mancanti in qualsiasi colonna.
  3. df.fillna(val): Riempi i valori mancanti con val fornito nell’argomento.
  4. df[‘col’].astype(new_data_type): Può convertire il tipo di dati delle colonne selezionate in un tipo di dati diverso.

Ad es.

df["SALES"].astype(int)

 

Stiamo convertendo il tipo di dati della colonna SALES da float a int.

 

 

5. Analisi dati

 

In questa sezione, utilizzeremo alcune funzioni utili nell’analisi dei dati, come raggruppamento, ordinamento e filtraggio.

  1. Funzioni di aggregazione:

È possibile raggruppare una colonna per il suo nome e quindi applicare alcune funzioni di aggregazione come somma, min/max, media, ecc.

df.groupby("col_name_1").agg({"col_name_2": "sum"})

 

Ad es.

df.groupby("CITY").agg({"SALES": "sum"})

 

Ti fornirà le vendite totali di ogni città.

  

Se desideri applicare più aggregazioni contemporaneamente, puoi scriverle in questo modo.

Ad es.

aggregation = df.agg({"SALES": "sum", "QUANTITYORDERED": "mean"})

 

Output:

SALES              1.003263e+07QUANTITYORDERED    3.509281e+01dtype: float64

 

  1. Filtraggio dati:

Possiamo filtrare i dati nelle righe in base a un valore specifico o una condizione.

Ad esempio-,

df[df["SALES"] > 5000]

 

Mostra le righe in cui il valore delle vendite è superiore a 5000

Puoi filtrare anche il dataframe usando la funzione query(). Genererà anche un output simile a quello sopra.

Ad esempio,

df.query("SALES" > 5000)

 

  1. Ordinamento dei dati:

Puoi ordinare i dati in base a una colonna specifica, sia in ordine crescente che in ordine decrescente.

Ad esempio-,

df.sort_values("SALES", ascending=False)  # Ordina i dati in ordine decrescente

 

  1. Tabelle pivot:

Possiamo creare tabelle pivot che riassumono i dati utilizzando colonne specifiche. Questo è molto utile nell’analisi dei dati quando si desidera considerare solo l’effetto di colonne particolari.

Ad esempio-,

pd.pivot_table(df, values ="SALES", index ="CITY", columns ="YEAR_ID", aggfunc ="sum")

 

Permettimi di spiegarti questo.

  1. values: Contiene la colonna per la quale si desidera popolare le celle della tabella.
  2. index: La colonna utilizzata diventerà l’indice di riga della tabella pivot, e ogni categoria univoca di questa colonna diventerà una riga nella tabella pivot.
  3. columns: Contiene le intestazioni della tabella pivot, e ogni elemento univoco diventerà la colonna nella tabella pivot.
  4. aggfunc: Questa è la stessa funzione aggregatore di cui abbiamo parlato in precedenza.

Output:

  

Questo output mostra un grafico che rappresenta le vendite totali in una determinata città per un anno specifico.

 

6. Combina i frame di dati

 

Possiamo combinare e unire diversi frame di dati sia orizzontalmente che verticalmente. Concatenerà due frame di dati e restituirà un unico frame di dati unito.

Ad esempio-,

combined_df = pd.concat([df1, df2])

 

Puoi unire due frame di dati in base a una colonna comune. È utile quando si desidera combinare due frame di dati che condividono un identificatore comune.

Ad esempio,

merged_df = pd.merge(df1, df2, on ="common_col")

 

7. Applicazione di funzioni personalizzate

 

Puoi applicare funzioni personalizzate in base alle tue esigenze sia su una riga che su una colonna.

Ad esempio-,

def cus_fun(x): return x * 3df["Sales_Tripled"] = df["SALES"].apply(cus_fun, axis = 0)

 

Abbiamo scritto una funzione personalizzata che triplica il valore delle vendite per ogni riga. axis = 0 significa che vogliamo applicare la funzione personalizzata su una colonna e axis = 1 implica che vogliamo applicare la funzione su una riga.

Nel metodo precedente, devi scrivere una funzione separata e quindi chiamarla dal metodo apply(). La funzione lambda ti aiuta a utilizzare la funzione personalizzata all’interno del metodo apply() stesso. Vediamo come possiamo fare questo.

df["Sales_Tripled"] = df["SALES"].apply(lambda x: x * 3)

 

Applymap:

Puoi anche applicare una funzione personalizzata ad ogni elemento del dataframe in una sola riga di codice. Ma un punto da ricordare è che è applicabile a tutti gli elementi nel dataframe.

Per esempio-,

df = df.applymap(lambda x: str(x))

 

Convertirà il tipo di dati in una stringa di tutti gli elementi nel dataframe.

 

8. Analisi delle serie temporali

 

In matematica, l’analisi delle serie temporali significa analizzare i dati raccolti durante un intervallo di tempo specifico, e pandas dispone di funzioni per eseguire questo tipo di analisi.

Conversione in oggetto DateTime:

Possiamo convertire la colonna delle date in un formato datetime per una manipolazione più semplice dei dati.

Per esempio-,

df["ORDERDATE"] = pd.to_datetime(df["ORDERDATE"])

 

Output:

  

Calcolo della media mobile:

Utilizzando questo metodo, possiamo creare una finestra mobile per visualizzare i dati. Possiamo specificare una finestra mobile di qualsiasi dimensione. Se la dimensione della finestra è 5, significa una finestra dati di 5 giorni in quel momento. Può aiutarti a rimuovere le fluttuazioni nei tuoi dati e individuare i modelli nel tempo.

Per esempio-

rolling_avg = df["SALES"].rolling(window=5).mean()

 

Output:

 

 

9. Tabella incrociata

 

Possiamo effettuare una tabella incrociata tra due colonne di una tabella. In generale, si tratta di una tabella di frequenza che mostra la frequenza delle varie categorie. Può aiutarti a capire la distribuzione delle categorie in diverse regioni.

Per esempio-,

Ottenere una tabella incrociata tra il COUNTRY e il DEALSIZE.

cross_tab = pd.crosstab(df["COUNTRY"], df["DEALSIZE"])

 

Può mostrarti la dimensione dell’ordine (‘DEALSIZE’) ordinata per paesi diversi.

 

 

10. Gestione degli outlier

 

Gli outlier nei dati significano che un punto particolare si discosta molto dall’intervallo medio. Cerchiamo di capirlo attraverso un esempio. Supponiamo di avere 5 punti, diciamo 3, 5, 6, 46, 8. Possiamo dire chiaramente che il numero 46 è un outlier perché si discosta molto dalla media degli altri punti. Questi outlier possono portare a statistiche errate e dovrebbero essere rimossi dal dataset.

In questo caso, pandas ci viene in aiuto per trovare questi outlier potenziali. Possiamo utilizzare un metodo chiamato Intervallo interquartile (IQR), che è un metodo comune per individuare e gestire questi outlier. Puoi anche leggere su questo metodo se desideri ulteriori informazioni. Puoi leggere di più su di essi qui.

Vediamo come possiamo fare questo utilizzando pandas.

Q1 = df["SALES"].quantile(0.25)Q3 = df["SALES"].quantile(0.75)IQR = Q3 - Q1lower_bound = Q1 - 1.5 * IQRupper_bound = Q3 + 1.5 * IQRoutliers = df[(df["SALES"] < lower_bound) | (df["SALES"] > upper_bound)]

 

Q1 è il primo quartile che rappresenta il 25° percentile dei dati e Q3 è il terzo quartile che rappresenta il 75° percentile dei dati.

La variabile lower_bound memorizza il limite inferiore che viene utilizzato per trovare gli outlier potenziali. Il suo valore è impostato a 1,5 volte l’IQR al di sotto di Q1. Allo stesso modo, upper_bound calcola il limite superiore, 1,5 volte l’IQR al di sopra di Q3.In seguito, si filtrano gli outlier che sono inferiori al limite inferiore o superiori al limite superiore.

 

 

Conclusione

 

La libreria Python pandas ci consente di eseguire analisi avanzate dei dati e manipolazioni. Queste sono solo alcune di esse. Puoi trovare ulteriori strumenti in questa documentazione di pandas. Una cosa importante da ricordare è che la selezione delle tecniche può essere specifica per le tue esigenze e il dataset che stai utilizzando.

[Aryan Garg](https://www.linkedin.com/in/aryan-garg-1bbb791a3/) è uno studente di Ingegneria Elettrica che sta attualmente frequentando l’ultimo anno del suo corso di laurea triennale. Il suo interesse si concentra nell’ambito dello sviluppo web e dell’apprendimento automatico. Ha coltivato questo interesse ed è desideroso di lavorare ancora di più in queste direzioni.