Kurs
Du bist nie auf die gelieferten Daten festgelegt. Stattdessen kannst du einem DataFrame neue Spalten hinzufügen. Das wird auch als Transformieren, Mutieren oder Feature Engineering bezeichnet.
Du kannst neue Spalten komplett neu anlegen oder aus bestehenden Spalten ableiten, zum Beispiel indem du Spalten addierst oder Einheiten umrechnest.
Eine Spalte ableiten
Angenommen, du arbeitest mit einem Hunder-Datensatz und möchtest eine neue Spalte mit der Größe jedes Hundes in Metern statt in Zentimetern hinzufügen.
Links vom Gleichheitszeichen verwendest du eckige Klammern mit dem Namen der neuen Spalte, hier height_m. Rechts davon steht die Berechnung.
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
Du siehst, dass sowohl die ursprüngliche als auch die abgeleitete Spalte im veränderten DataFrame vorhanden sind.
Eine Spalte hinzufügen
In diesem Beispiel berechnest du den Doggy-Massenindex und fügst ihn als Spalte zu deinem DataFrame hinzu. BMI steht für Body-Mass-Index und wird berechnet als Gewicht in Kilogramm geteilt durch die Körpergröße in Metern zum Quadrat.
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
Auch hier steht die neue Spalte links vom Gleichheitszeichen, nur dass die Berechnung diesmal zwei Spalten einbezieht.
Eine Spalte mit mehreren Schritten hinzufügen
Die wahre Stärke von pandas zeigt sich, wenn du die bisher gelernten Fähigkeiten kombinierst. Finden wir die Namen schlanker, großer Hunde heraus.
Definiere zuerst die schlanken Hunde, indem du die Teilmenge mit einem BMI unter 100 auswählst. Dann sortierst du nach der Größe absteigend, sodass die größten schlanken Hunde oben stehen.
Zum Schluss behältst du nur die Spalten, die dich interessieren.
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
Hier siehst du, dass Max der größte Hund mit einem BMI unter 100 ist.
Interaktives Beispiel
Im folgenden Beispiel fügst du dem DataFrame homelessness eine neue Spalte total hinzu, die die Summe der Spalten individuals und family_members enthält. Danach ergänzt du eine weitere Spalte p_individuals mit dem Anteil der obdachlosen Personen je Bundesstaat, die Einzelpersonen sind. Abschließend gibst du den homelessness-DataFrame aus.
# 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)
Beim Ausführen des Codes erhältst du folgende Ausgabe:
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
Sieh dir auch DataCamps Tutorial zu Spalten in pandas löschen an.
Wenn du mehr über das Hinzufügen neuer Spalten in pandas lernen möchtest, schau dir dieses Video aus unserem Kurs Data Manipulation with pandas an.
Dieser Inhalt stammt aus dem DataCamp-Kurs Data Manipulation with pandas von Maggie Matsui und Richie Cotton.