Schema riassuntivo Pandas
Installazione di Pandas
| conda install pandas | Il modo migliore per ottenere pandas è tramite conda |
| python3 -m pip install –upgrade pandas | Tramite PyPI |
| pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pandas | Installazione tramite mirror Tsinghua (consigliato in Cina) |
Abbreviazioni chiave e importazione dei pacchetti
| df | Qualsiasi oggetto Pandas DataFrame |
| s | Qualsiasi oggetto Pandas Series |
Metodi di importazione
| import pandas as pd | Importa pandas e abbrevia come pd |
| import numpy as np | Importa numpy e abbrevia come np |
Selezione dei dati
| df[col] | Restituisce la colonna in base al nome come Series |
| df[[col1, col2]] | Restituisce più colonne come DataFrame |
| s.iloc[0] | Selezione dei dati in base alla posizione |
| s.loc[‘index_one’] | Selezione dei dati in base all’etichetta dell’indice |
| df.iloc[0,:] | Restituisce la prima riga |
| df.iloc[0,0] | Restituisce il primo elemento della prima colonna |
Pulizia dei dati
| df.columns = [‘a’,‘b’,‘c’] | Rinomina le colonne |
| pd.isnull() | Controlla i valori nulli e restituisce un array booleano |
| pd.notnull() | Controlla i valori non nulli e restituisce un array booleano |
| df.dropna() | Elimina tutte le righe che contengono valori nulli |
| df.dropna(axis=1) | Elimina tutte le colonne che contengono 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 con x |
| s.astype(float) | Cambia il tipo di dati nella 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 massa |
| 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 massa |
Importazione dei dati
| 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 in formato JSON |
| pd.read_html(url) | Analizza URL, stringa o file HTML ed estrae le tabelle |
| pd.read_clipboard() | Ottiene il contenuto dagli appunti |
| pd.DataFrame(dict) | Importa da un dizionario (Key=nome colonna, Value=dati) |
Esportazione dei dati
| 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 formato JSON in un file di testo |
Elaborazione dei dati: Filtro, Ordinamento e GroupBy
| df[df[col] > 0.5] | Seleziona le righe in cui il valore della 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 (decrescente) |
| df.sort_values([col1,col2], ascending=[True,False]) | Ordina per col1 crescente e 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] | Restituisce la media della colonna col2 dopo il raggruppamento per col1 |
| df.pivot_table(index=col1, values=[col2,col3], aggfunc=max) | Crea una tabella pivot raggruppata per col1 calcolando il massimo di col2 e col3 |
| df.groupby(col1).agg(np.mean) | Restituisce la media di tutte le colonne raggruppate per col1 |
| data.apply(np.mean) | Applica la funzione np.mean a ogni colonna del DataFrame |
| data.apply(np.max,axis=1) | Applica la funzione np.max a ogni riga del DataFrame |
Creazione di oggetti di test
| pd.DataFrame(np.random.rand(20,5)) | Crea un oggetto DataFrame di 20 righe e 5 colonne con numeri casuali |
| pd.Series(my_list) | Crea un oggetto 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 controllo dei dati
| df.head(n) | Visualizza le prime n righe dell’oggetto DataFrame |
| df.tail(n) | Visualizza le ultime n righe dell’oggetto DataFrame |
| df.shape | Visualizza il numero di righe e colonne |
| df.info() | Visualizza indice, tipo di dati e informazioni sulla memoria |
| df.describe() | Visualizza statistiche riassuntive per le colonne numeriche |
| s.value_counts(dropna=False) | Visualizza valori univoci e conteggi per un oggetto Series |
| df.apply(pd.Series.value_counts) | Visualizza valori univoci e conteggi per ogni colonna del DataFrame |
Combinazione dei dati
| 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’) | Esegue un join in stile SQL tra le colonne di df1 e df2 |
Statistiche
| df.describe() | Visualizza statistiche riassuntive per le colonne di valori numerici |
| 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 |