Corso
Non sei mai limitato solo ai dati che ti vengono forniti. Puoi invece aggiungere nuove colonne a un DataFrame. Questo ha molti nomi, come transforming, mutating e feature engineering.
Puoi creare nuove colonne da zero, ma è anche comune ricavarle da altre colonne, ad esempio sommando colonne tra loro o cambiando le unità di misura.
Ricavare una colonna
Usando un dataset sui cani, supponiamo di voler aggiungere una nuova colonna al tuo DataFrame con l'altezza di ciascun cane in metri invece che in centimetri.
Sul lato sinistro dell'uguale, usi le parentesi quadre con il nome della nuova colonna che vuoi creare, in questo caso height_m. Sul lato destro c'è il calcolo.
dogs["height_m"] = dogs["height_cm"] / 100
print(dogs)
name breed color height_cm weight_kg date_of_birth height_m
0 Bella Labrador Brown 56 24 2013-07-01 0.56
1 Charlie Poodle Black 43 24 2016-09-16 0.43
2 Lucy Chow Chow Brown 46 24 2014-08-25 0.46
3 Cooper Schnauzer Gray 49 17 2016-09-16 0.49
4 Max Labrador Black 59 29 2016-09-16 0.59
5 Stella Chihuahua Tan 18 2 2016-09-16 0.18
6 Bernie St. Bernard White 77 74 2016-09-16 0.77
Nota che sia la colonna esistente sia quella ricavata sono presenti nel dataframe che hai modificato.
Aggiungere una colonna
In questo esempio calcolerai il doggy mass index e lo aggiungerai come colonna al tuo dataframe. BMI sta per body mass index, che si calcola come il peso in chilogrammi diviso per l'altezza in metri al quadrato.
dogs["height_m"] = dogs["weight_kg"] / dogs["height_m"] ** 2
print(dogs.head())
name breed color height_cm weight_kg date_of_birth height_m bmi
0 Bella Labrador Brown 56 24 2013-07-01 0.56 76.530612
1 Charlie Poodle Black 43 24 2016-09-16 0.43 129.799892
2 Lucy Chow Chow Brown 46 24 2014-08-25 0.46 113.421550
3 Cooper Schnauzer Gray 49 17 2016-09-16 0.49 70.803832
4 Max Labrador Black 59 29 2016-09-16 0.59 83.309394
Di nuovo, la nuova colonna è sul lato sinistro dell'uguale, ma questa volta il calcolo coinvolge due colonne.
Aggiungere una colonna con più passaggi
La vera potenza di pandas emerge quando combini tutte le competenze che hai imparato finora. Vediamo come trovare i nomi dei cani magri e alti.
Per prima cosa, per definire i cani magri, prendi il sottoinsieme di cani con un BMI inferiore a 100. Poi, ordina l'altezza in ordine decrescente per ottenere i cani magri più alti in cima.
Infine, questa volta terrai solo le colonne che ti interessano.
bmi_lt_100 = dogs[dogs["bmi"] < 100]
bmi_lt_100_height = bmi_lt_100.short_values("height_cm", ascending=False)
bmi_lt_100_height[["name", "height_cm", "bmi"]]
name height_cm bmi
4 Max 59 83.309394
0 Bella 56 76.530612
3 Cooper 49 70.803832
5 Stella 18 61.728395
Qui puoi vedere che Max è il cane più alto con un BMI inferiore a 100.
Esempio interattivo
Nell'esempio seguente aggiungi una nuova colonna al DataFrame homelessness, chiamata total, contenente la somma delle colonne individuals e family_members. Poi aggiungi un'altra colonna a homelessness, chiamata p_individuals, contenente la proporzione di persone senza fissa dimora in ciascuno stato che sono individui. Infine, stampa il dataframe homelessness.
# Add total col as sum of individuals and family_members
homelessness["total"] = homelessness["individuals"] + homelessness["family_members"]
# Add p_individuals col as proportion of individuals
homelessness["p_individuals"] = homelessness["individuals"] / homelessness["total"]
# See the result
print(homelessness)
Quando eseguiamo il codice sopra, otteniamo il seguente risultato:
region state individuals family_members state_pop total p_individuals
0 East South Central Alabama 2570.0 864.0 4887681 3434.0 0.748
1 Pacific Alaska 1434.0 582.0 735139 2016.0 0.711
2 Mountain Arizona 7259.0 2606.0 7158024 9865.0 0.736
3 West South Central Arkansas 2280.0 432.0 3009733 2712.0 0.841
4 Pacific California 109008.0 20964.0 39461588 129972.0 0.8
...
48 South Atlantic West Virginia 1021.0 222.0 1804291 1243.0 0.821
49 East North Central Wisconsin 2740.0 2167.0 5807406 4907.0 0.558
50 Mountain Wyoming 434.0 205.0 577601 639.0 0.679
Dai anche un'occhiata al tutorial di DataCamp su Come eliminare colonne in pandas.
Per saperne di più sull'aggiunta di nuove colonne in pandas, guarda questo video dal nostro corso Data Manipulation with pandas.
Questo contenuto è tratto dal corso di DataCamp Data Manipulation with pandas di Maggie Matsui e Richie Cotton.

