import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
from scipy import stats
import arviz as az
import seaborn as sns
8 Pandas (3)
In questo tutorial, verranno presentate le funzioni di Pandas più utili per condurre le usuali operazioni di manipolazione dei dati.
%config InlineBackend.figure_format = 'retina'
= 42
RANDOM_SEED = np.random.default_rng(RANDOM_SEED)
rng "arviz-darkgrid")
az.style.use(="colorblind") sns.set_theme(palette
Per questo tutorial, useremo nuovamente i dati penguins.csv
. Come in precedenza, dopo avere caricato i dati, rimuoviamo i dati mancanti.
https://regenerativetoday.com/30-very-useful-pandas-functions-for-everyday-data-analysis-tasks/
8.1 pd.read_csv
, pd.read_excel
La prima funzione da menzionare è read_csv
o read_excel
. Le funzioni vengono utilizzate per leggere un file CSV o un file Excel in formato DataFrame di Pandas. Qui stiamo utilizzando la funzione read_csv
per leggere il dataset penguins
. In precedenza abbiamo anche visto come la funzione dropna
viene utilizzata per rimuovere tutte le righe del DataFrame che includono dati mancanti.
= pd.read_csv("../data/penguins.csv")
df =True)
df.dropna(inplace df.tail()
species | island | bill_length_mm | bill_depth_mm | flipper_length_mm | body_mass_g | sex | year | |
---|---|---|---|---|---|---|---|---|
339 | Chinstrap | Dream | 55.8 | 19.8 | 207.0 | 4000.0 | male | 2009 |
340 | Chinstrap | Dream | 43.5 | 18.1 | 202.0 | 3400.0 | female | 2009 |
341 | Chinstrap | Dream | 49.6 | 18.2 | 193.0 | 3775.0 | male | 2009 |
342 | Chinstrap | Dream | 50.8 | 19.0 | 210.0 | 4100.0 | male | 2009 |
343 | Chinstrap | Dream | 50.2 | 18.7 | 198.0 | 3775.0 | female | 2009 |
8.2 .columns
Quando si dispone di un grande dataset, può essere difficile visualizzare tutte le colonne. Utilizzando la funzione columns
, è possibile stampare tutte le colonne del dataset.
df.columns
Index(['species', 'island', 'bill_length_mm', 'bill_depth_mm',
'flipper_length_mm', 'body_mass_g', 'sex', 'year'],
dtype='object')
8.3 .drop()
È possibile eliminare alcune colonne non necessarie utilizzando drop
.
= df.drop(columns=["year"])
df df.columns
Index(['species', 'island', 'bill_length_mm', 'bill_depth_mm',
'flipper_length_mm', 'body_mass_g', 'sex'],
dtype='object')
8.4 len()
Fornisce il numero di righe di un DataFrame.
len(df)
333
8.5 .query()
È possibile filtrare un DataFrame utilizzando un’espressione booleana.
= df.query("species == 'Chinstrap' & island == 'Dream'")
df1 len(df1)
68
8.6 .iloc[]
Questa funzione accetta come parametri gli indici delle righe e delle colonne, fornendo una selezione del DataFrame in base a questi. In questo caso, stiamo selezionando le prime 3 righe di dati e le colonne con indice 2, 3 e 5.
= df.iloc[:3, [2, 3, 5]]
df2 df2
bill_length_mm | bill_depth_mm | body_mass_g | |
---|---|---|---|
0 | 39.1 | 18.7 | 3750.0 |
1 | 39.5 | 17.4 | 3800.0 |
2 | 40.3 | 18.0 | 3250.0 |
8.7 .loc[]
Questa funzione compie un’operazione molto simile a quella della funzione .iloc
. Tuttavia, in questo caso, abbiamo la possibilità di specificare gli indici delle righe che desideriamo, insieme ai nomi delle colonne che vogliamo includere nella nostra selezione.
= df.loc[[2, 4, 6], ["island", "flipper_length_mm", "sex"]]
df3 df3
island | flipper_length_mm | sex | |
---|---|---|---|
2 | Torgersen | 195.0 | female |
4 | Torgersen | 193.0 | female |
6 | Torgersen | 181.0 | female |
8.8 Informazioni sull’Ambiente di Sviluppo
%load_ext watermark
%watermark -n -u -v -iv -w -m
Last updated: Mon Jan 29 2024
Python implementation: CPython
Python version : 3.11.7
IPython version : 8.19.0
Compiler : Clang 16.0.6
OS : Darwin
Release : 23.3.0
Machine : x86_64
Processor : i386
CPU cores : 8
Architecture: 64bit
seaborn : 0.13.0
numpy : 1.26.2
arviz : 0.17.0
pandas : 2.1.4
matplotlib: 3.8.2
scipy : 1.11.4
Watermark: 2.4.3