Show Menu
Cheatography

dvva18 pandas Cheat Sheet (DRAFT) by

appunti per corso dvva 2018

This is a draft cheat sheet. It is a work in progress and is not finished yet.

Importare pandas e numpy

import pandas as pd

importa la libreria pandas
import numpy as np

importa la libreria numpy
pd.set­_op­tio­n('­max­_co­lumns', 300)

limitare il numero di colonne stampate in output:*
pd.set­_op­tio­n('­max­_rows', 1000)

limitare il numero di righe stampate in output:*

Creare una serie

my_data = [10,20,30]
e
labels = ['A','­B','C']

pd.Ser­ies­(da­ta=­my_­data, index=­labels)

Caricare un file in un dataframe

df=pd.r­ea­d_c­sv(­"­fil­e.c­sv")
Legge un file csv
parametri aggiun­tivi:
header
specifca la riga da usare come header (int type), nel caso non sia presente:
header­=None
sep=';'
specifica il separatore usato nel file csv
names=­['c­ol1­','­col2']
esplicita il nome delle colonne del dataframe, utile soprat­tutto in caso non ci sia header nel file
parse_­dates = ['col1­','­col2']
lista di interi nomi di colonne da tentare di parsare come data.
df=pd.r­ea­d_e­xce­l("n­ome­fil­e.x­lsx­")
legge un file excel

Salvare un dataframe in csv

df.to_­csv­('p­ath­/fi­le_­nam­e.c­sv'­,se­p=';', index=­False) 

salva il dataframe in un file csv (rimuo­vendo l'indice e usando come seprar­atore il ;)

Esplorare un dataframe

df.shape

restituisce (numero righe, numero colonne)
df[df.i­sn­ull­().a­ny­(ax­is=1)]

controlla se ci sono valori nulli
df.dtypes 

restituisce il tipo di variabile di ogni colonna
df.head()

restituisce le prime (n) righe di un dataframe (default = 5)
df.tail()

restituisce le ultime (n) righe di un dataframe (default = 5)
df.columns

restituisce l'elenco delle colonne del dataframe
df.des­cribe()

restituisce una descri­zione del dataframe con le statis­tiche di base

Gestire i dati mancanti

df.dro­pna­(ax­is=0)

Elimina le righe con valori null presenti in qualsiasi colonna
df.dro­pna­(ax­is=1)

Elimina le colonne con valori null
df.dro­pna­(ax­is=0, thresh=5)

Elimina le righe con almeno 5 valori null presenti in qualsiasi colonna
df.fil­lna­(va­lue­='V­ALORE NUOVO')

Riempi le righe con valori null usando il valore value indicato tra parentesi
 

Reshape dei dati

df.sor­t_v­alu­es(­by=­['c­ol1­','­col2'])

ordina il dataframe per colonna o array di colonne
df.sor­t_v­alu­es(­by=­'co­l1'­,as­cending = False)

ordina il dataframe per colonna in ordine discen­dente
df.sor­t_i­ndex()

ordina l'indice del dataframe
df.res­et_­index()

resetta l'indice del dataframe usando l'ordine delle righe, l'indice attuale viene salvato in una nuova colonna
df.res­et_­ind­ex(­nam­e='new name')

assegna il nome alla colonna indice durante la fase di reset
df.dro­p(c­olu­mns­=['­col­1',­'co­l2'])

elimina le colonne 'col1' e 'col2'
df.ren­ame­(co­lum­ns=­{'o­ld_­column : 'new column', 'old_c­olumn2 : 'new column2'})

rinomina le colonne (usando un dizion­ario)
df.con­cat­([d­f1,­df2])

aggiunge le righe del df2 al df1
df.con­cat­([d­f1,­df2], axis=1)

aggiunge le colonne del df2 al df1

ricavare un sottoi­nsieme di un dataframe

per righe
df[df[­'co­lon­na1­']>n]

seleziona tutte le righe dove nella colonna1 i valori sono maggiori di n
df.dro­p_d­upl­ica­tes()

rimuove le righe duplicate
df.ilo­c[1­0:20]

seleziona tutte le righe dalla 10 alla 20
df[df[­'co­lum­n'].is­in(­['v­alu­e1'­,'v­alu­e2'])]

seleziona tutte le righe dove il valore nella colonna column è uguale a value1 o value2
df['co­lum­n'].un­ique()

restituisce i valori unici di una colonna
per colonne
df['co­lon­na1']
o
df.col­onna1

seleziona la colonna 1
df[['c­olo­nna­1',­'co­lon­na2­','­col­onn­a4']]

Seleziona le colonne 1,2,4
df.ilo­c[1­0:20, [1,2,5]]

seleziona tutte le righe dalla 10 alla 20 e le colonne in posizione 1,2,5
df.loc[:, 'x2':'x4']

seleziona tutte le colonne dalla posizione x2 alla posizione x4 (compresa)
df.loc­[df­['a­']>­10,­['a­','c']]

seleziona le colonne 'a' e 'c' dove il valore di a è maggiore di 10

Varie

df.columns

restit­uisce l'elenco delle colonne
del df['co­l_1']

elimina una colonna
 

Riassumere i dati

len(df) 

number of rows in a dataframe
df['co­lum­n1'­].n­uni­que()

numero di valori unici in una colonna
df['co­lum­n1'­].sum()

somma dei valori di una colonna
df['co­lum­n1'­].min()

minimo dei valori di una colonna
df['co­lum­n1'­].max()

massimo dei valori di una colonna
df['co­lum­n1'­].m­ean()

media dei valori di una colonna
df['co­lum­n1'­].var()

varianza dei valori di una colonna
df['co­lum­n1'­].std()

deviazione standard dei valori di una colonna
df['co­lum­n1'­].c­ount()

count dei valori non nulli di una colonna
df['co­lum­n1'­].m­edian()

mediana dei valori di una colonna
df['co­lum­n1'­].q­uan­til­e([.25­,.75])

quantile dei valori di una colonna
df['co­lum­n1'­].v­alu­e_c­ount()

count di ogni valore di una colonna

Gestione oggetti di tipo datetime

df['Da­ta'­]=p­d.t­o_d­ate­tim­e(d­f['­Data'])

converte stringhe in oggetti datetime
df['Da­ta'­].d­t.r­oun­d('1s')

arrotonda la data al secondo
df['Du­rat­ion­']=­(df­['D­ata­2']­-df­['D­ata­1']­).d­t.s­econds 

Calcola la differenza tra due date restit­uendo un risultato in seocndi
df['Da­ta'­].d­t.date

estrae solo la data da data ora
df['Da­ta'­].d­t.month

estrae il mese
df['Da­ta'­].d­t.week

estrae la settimana dell'anno
df['Da­ta'­].d­t.w­eekday

estrae il giorno della settimana
df['Da­ta'­].d­t.w­eek­day­_name

estrae il giorno della settimana (come nome)
df['Da­ta'­].d­t.time

estrae l'ora completa
df['Da­ta'­].d­t.hour

estrae l'ora
df['St­agi­one­']=­pd.cut(     (df['D­ata­'].d­t.d­ay­ofyear + 11) % 366,      [0, 91, 183, 275, 366],     labels­=['­inv­erno', 'prima­vera', 'estate', 'autunno'] )

crea una colonna con la corris­pon­dente stagione

Crea ed elimina colonn­e/righe

df['ne­w_c­olumn'] = df['co­l_1'] + df['co­l_2']

crea una nuova colonna somma di due colonne
df = df.dro­p('­col_1', axis=1)

elimina la colonna col_1
df = df.drop(0, axis=0)

elimina la riga con indice 0