Pandas Flashcards
Pandas
- Leggere un file
df = pd.read_csv(Percorso)
Pandas
- Leggere un file e formattarlo
df = pd.read_csv(percorso, sep=”\t”, delimitar = “\n”, index_col=0)
- sep –> tabulato
- delimitar –> righe
- index_col –> Indice prima colonna
Pandas
- Funzioni loc e iloc
loc = localizzazione per etichetta
iloc = localizzazione per indice
df.loc[0] = prima riga
df.loc[0:5] = prime 4 righe
Pandas
- Prime o ultime righe
df.head(5) –> prime 5 righe
df.tail(5) –> ultime 5 righe
Pandas
- selezionare colonne
df[“nome_colonna”] –> colonna specifica
df[“nome_colonna”][0:4] –> riga di colonna specifica
df[[“nome_colonna”,”nome_colonna_1”]] –> colonne specifiche
Pandas
- titoli colonne e valori
for key,value in df.items():
print(key) –> titoli colonne
print(value) –> valori per colonna
Pandas
- riga come scheda
for index,row in df.iterrows():
print(row) –> riga come scheda
print(index,row) –> aggiunge indice
Pandas
- Ordinare
Ordinato per indici
- df.sort_index()
- df.sort_index(ascending=false)
Ordinato per valore
- df.sort_values(by=”nome_colonna”)
- df.sort_values(by=”[nome_colonna,nome_colonna]”)
- df.sort_values(by=”[nome_colonna,nome_colonna]”, ascending=[false,true])
Pandas
- Aggiungere colonna in coda
colonna con i valori ‘ciao’ in coda
- df[‘nome_colonna_da_aggiungere’] = ‘ciao’
- df.loc[:’nome_colonna_da_aggiungere’] = ‘ciao’
- df = df.assign(nome_colonna_da_aggiungere = ‘ciao’)
Pandas
- Aggiungere più colonne in coda
df[[‘nome_colonna_da_aggiungere’],[‘nome_colonna_da_aggiungere_1’]] = [‘ciao’,’altro’]
Pandas
-Aggiungere colonna in mezzo
df.insert(2,’nome_colonna_da_agg’,’ciao’)
Pandas
- Rimuovere colonne
3 modalità
- df.drop(‘nome_colonna’,inplace=True,axis=1)
- del df[‘nome_colonna’]
- colPop= df.pop(‘nome_colonna’)
Pandas
- Cambiare ordine colonna
df.loc[:,’nome_colonna’,’nome_colonna1’]
df.iloc[:,1,4,3]
Pandas
-Invertire colonne
- columns = list(df.columns)
columns.reverse
print(df[columns]) - columns = df.columns.tolist()
Pandas
- Salvare csv o excel
- df.to_csv(‘nome_file’,index=false)
- df.to_excel(‘nome_file’,sheet_name=’nome_foglio’,index=false)
Pandas
- Filtrare dati
- df[df[‘nome_colonna’]==’filtro’] → uguale
- df[df[‘nome_colonna’]!=’filtro’] → diverso
- df[df[‘nome_colonna’].str.contains=’filtro’] → contiene
- df[df[‘nome_colonna’]>100] → maggiore
- df[df[‘nome_colonna’]<100] → minore
Più filtri
- df(df[‘nome_colonna’]>200)&(df[‘nome_colonna’]<100)] → and
df(df[‘nome_colonna’]>200)|(df[‘nome_colonna’]<100)] → or
df.loc[(df[‘nome_colonna’]==’filtro),[‘nome_colonna’,’altra_colonna’]] → filtro con loc
Pandas
- Modificare colonne
Modificare una colonna
df.loc[df[‘nome_colonna’]==’vecchio_valore’,’nome_colonna’]=’nuovo_valore
Modificare + colonne
df.loc[df[‘nome_colonna’]==’vecchio_valore’,[‘nome_colonna1’,’nome_colonna2’]]=[‘nuovo_valore1’,’nuovo_valore2’]
Pandas
- Unire più liste
pd.concat([df1,df2,df3],axis=1]
Pandas
- Raggruppare
types = df.groupby(‘nome_colonna’)
print(types.groups) → elenco gruppi
Raggruppare più gruppi
types = df.groupby[‘nome_colonna’,’nome_colonna1’]
for name,group in types:
print(name) → mostra nomi gruppi
print(group) → mostra elenco gruppi
Pandas
- Statistiche gruppi
types =
1 - df.groupby(‘nome_colonna’).mean()
2 - df.groupby(‘nome_colonna’).sum()
3 - df.groupby(‘nome_colonna’).min()
4 - df.groupby(‘nome_colonna’).max()
5 - df.groupby(‘nome_colonna’).count()
Funzioni importanti
.isnull().sum()
.endswith(‘ID’)
.drop([‘nome_col’],axis=1)
.value_counts(ascending=True)
Pandas
- Pulire i dati
Eliminare i dati
- new_df = df.dropna()
- df.dropna(inplace=True)
Scambiare i vuoti
- df.fillna(‘new_valore’, inplace= True)
- df[‘nome_colonna].fillna(‘new_valore’,inplace=True)
- df[‘nome_colonna].fillna(df[‘nome_colonna’].mean(),inplace=True) → cambiato con media valore
Cambio formato
-df[‘nome_colonna]=pd.to_date_time(df[‘nome_colonna])
RImuovere duplicati
df.dropduplicates(inplace=True)
Pandas
- Dati errati
Cambiare un valore
df.loc[‘valore_da_cambiare’,’nome_colonna’]=’nuovo_valore’
Cambiare più valori
if df.loc[index,’nome_colonna’]>60:
df.loc[index,’nome_colonna’]=5
Pandas
- EDA
df.describe() → trasposto df.describe.T
df.info()
df.index()
Pandas
- Modificare testo
- df.replace(‘/’,’_’) → cambiare valori
- df.lower() → minuscolo
- df.upper() → maiuscolo
- df.columns[lista nomi colonne]
Pandas
- Merge
- df_new = pd.merge(df,df1)
- df_new = pd.merge(df,df1, how=’outer’)
- df_new = pd.merge(df,df1,on=’nome_colonna’)
- df_new = pd.merge(df,df1,left_on=’col1’, right_on=’col2’,how=’outer’).drop(‘col’,axis=1)
Pandas
- Multiindici (da tuples)
index = [(‘Giuliano’,2000),(‘Giuliano,2020),(‘Laura’,2000),(‘Laura’,2020)]
index = pd.MultiIndex.from_tuples(index)
df.index = index
df[‘Giuliano’]
df[:,2000]
df[:,2000].mean()
df.unstack