Pandas Cheat Sheet
Guida dettagliata all’uso della libreria Pandas.
Installazione di Pandas
| Comando | Descrizione |
|---|---|
conda install pandas |
Il modo migliore per ottenere pandas è tramite conda |
python3 -m pip install --upgrade pandas |
Tramite PyPI |
pip install pandas |
Installazione standard tramite pip |
Abbreviazioni chiave e importazione dei pacchetti
| Abbreviazione | Descrizione |
|---|---|
df |
Qualsiasi oggetto DataFrame di Pandas |
s |
Qualsiasi oggetto Series di Pandas |
Metodi di importazione
| Comando | Descrizione |
|---|---|
import pandas as pd |
Importa pandas con l’alias pd |
import numpy as np |
Importa numpy con l’alias np |
Selezione dei dati
| Comando | Descrizione |
|---|---|
df[col] |
Restituisce una colonna come Series in base al nome della colonna |
df[[col1, col2]] |
Restituisce più colonne come DataFrame |
s.iloc[0] |
Seleziona i dati in base alla posizione |
s.loc['index_one'] |
Seleziona i dati in base all’indice |
df.iloc[0,:] |
Restituisce la prima riga |
df.iloc[0,0] |
Restituisce il primo elemento della prima colonna |
Pulizia dei dati
| Comando | Descrizione |
|---|---|
df.columns = ['a','b','c'] |
Rinomina le colonne |
pd.isnull() |
Controlla i valori nulli in un DataFrame; restituisce un array booleano |
pd.notnull() |
Controlla i valori non nulli in un DataFrame; restituisce un array booleano |
df.dropna() |
Elimina tutte le righe contenenti valori nulli |
df.dropna(axis=1) |
Elimina tutte le colonne contenenti valori nulli |
df.dropna(axis=1, thresh=n) |
Elimina tutte le righe con meno di n valori non nulli |
df.fillna(x) |
Sostituisce tutti i valori nulli in un DataFrame con x |
s.astype(float) |
Converte il tipo di dati della Series in float |
s.replace(1, 'one') |
Sostituisce tutti i valori uguali a 1 con ‘one’ |
s.replace([1,3], ['one', 'three']) |
Sostituisce 1 con ‘one’ e 3 con ’three’ |
df.rename(columns=lambda x: x + 1) |
Rinomina le colonne in blocco |
df.rename(columns={'old_name': 'new_name'}) |
Rinomina selettivamente le colonne |
df.set_index('column_one') |
Cambia la colonna dell’indice |
df.rename(index=lambda x: x + 1) |
Rinomina gli indici in blocco |
Importazione dei dati
| Comando | Descrizione |
|---|---|
pd.read_csv(filename) |
Importa dati da un file CSV |
pd.read_table(filename) |
Importa dati da un file di testo delimitato |
pd.read_excel(filename) |
Importa dati da un file Excel |
pd.read_sql(query, connection_object) |
Importa dati da una tabella/database SQL |
pd.read_json(json_string) |
Importa dati da una stringa JSON |
pd.read_html(url) |
Estrae tabelle da un URL, una stringa o un file HTML |
pd.read_clipboard() |
Recupera il contenuto dagli appunti e lo passa a read_table() |
pd.DataFrame(dict) |
Importa dati da un dizionario (le chiavi sono nomi di colonne, i valori sono dati) |
Esportazione dei dati
| Comando | Descrizione |
|---|---|
df.to_csv(filename) |
Esporta i dati in un file CSV |
df.to_excel(filename) |
Esporta i dati in un file Excel |
df.to_sql(table_name, connection_object) |
Esporta i dati in una tabella SQL |
df.to_json(filename) |
Esporta i dati in un file di testo in formato JSON |
Elaborazione dei dati: Filter, Sort e GroupBy
| Comando | Descrizione |
|---|---|
df[df[col] > 0.5] |
Seleziona le righe in cui il valore nella colonna ‘col’ è > 0.5 |
df.sort_values(col1) |
Ordina i dati per la colonna col1 (crescente per impostazione predefinita) |
df.sort_values(col2, ascending=False) |
Ordina i dati per la colonna col2 in ordine decrescente |
df.sort_values([col1, col2], ascending=[True, False]) |
Ordina per col1 crescente, poi col2 decrescente |
df.groupby(col) |
Restituisce un oggetto GroupBy raggruppato per la colonna ‘col’ |
df.groupby([col1, col2]) |
Restituisce un oggetto GroupBy raggruppato per più colonne |
df.groupby(col1)[col2].mean() |
Restituisce la media della colonna col2 per ogni gruppo in col1 |
df.pivot_table(index=col1, values=[col2, col3], aggfunc=max) |
Crea una tabella pivot raggruppata per col1, calcolando il massimo per col2 e col3 |
df.groupby(col1).agg(np.mean) |
Restituisce la media per tutte le colonne raggruppate per col1 |
df.apply(np.mean) |
Applica la funzione np.mean a ogni colonna |
df.apply(np.max, axis=1) |
Applica la funzione np.max a ogni riga |
Creazione di oggetti di prova
| Comando | Descrizione |
|---|---|
pd.DataFrame(np.random.rand(20,5)) |
Crea un DataFrame con 20 righe e 5 colonne di numeri casuali |
pd.Series(my_list) |
Crea una Series da un oggetto iterabile my_list |
df.index = pd.date_range('1900/1/30', periods=df.shape[0]) |
Aggiunge un indice di data |
Visualizzazione e ispezione dei dati
| Comando | Descrizione |
|---|---|
df.head(n) |
Visualizza le prime n righe di un DataFrame |
df.tail(n) |
Visualizza le ultime n righe di un DataFrame |
df.shape |
Visualizza il numero di righe e colonne |
df.info() |
Visualizza indice, tipi di dati e informazioni sulla memoria |
df.describe() |
Visualizza statistiche riassuntive per le colonne numeriche |
s.value_counts(dropna=False) |
Visualizza i valori unici e i conteggi per una Series |
df.apply(pd.Series.value_counts) |
Visualizza i valori unici e i conteggi per ogni colonna in un DataFrame |
Unione dei dati
| Comando | Descrizione |
|---|---|
df1.append(df2) |
Aggiunge le righe di df2 alla fine di df1 |
pd.concat([df1, df2], axis=1) |
Aggiunge le colonne di df2 alla fine di df1 |
df1.join(df2, on=col1, how='inner') |
Join in stile SQL tra le colonne di df1 e df2 |
Statistiche dei dati
| Comando | Descrizione |
|---|---|
df.describe() |
Visualizza statistiche riassuntive per le colonne numeriche |
df.mean() |
Restituisce la media di tutte le colonne |
df.corr() |
Restituisce il coefficiente di correlazione tra le colonne |
df.count() |
Restituisce il numero di valori non nulli in ogni colonna |
df.max() |
Restituisce il valore massimo di ogni colonna |
df.min() |
Restituisce il valore minimo di ogni colonna |
df.median() |
Restituisce la mediana di ogni colonna |
df.std() |
Restituisce la deviazione standard di ogni colonna |