LoslegenKostenlos loslegen

Spalte hinzufügen (2)

Das Durchlaufen aller Zeilen in einem pandas-DataFrame mit iterrows() ist einfach zu verstehen, aber nicht sehr effizient. Bei jeder Iteration erstellst du eine neue pandas-Series.

Wenn du eine Spalte zu einem DataFrame hinzufügen willst, indem du eine Funktion für eine andere Spalte aufrufst, ist die iterrows()-Methode in Kombination mit einer for-Schleife nicht der beste Weg. Stattdessen solltest du apply() verwenden.

Vergleiche die iterrows()-Version mit der apply()-Version, die beide dasselbe Ergebnis mit dem DataFrame brics erhalten:

for lab, row in brics.iterrows() :

    brics.loc[lab, "name_length"] = len(row["country"])




brics["name_length"] = brics["country"].apply(len)

Wir können ähnlich vorgehen, um die upper()-Methode für jeden Namen in der Spalte country aufzurufen. Allerdings ist upper() eine Methode, also brauchen wir einen etwas anderen Ansatz:

Diese Übung ist Teil des Kurses

Python für Fortgeschrittene

Kurs anzeigen

Anleitung zur Übung

  • Ersetze die for-Schleife durch einen Einzeiler, der .apply(str.upper) verwendet. Der Aufruf sollte dasselbe Ergebnis liefern: Eine Spalte COUNTRY sollte zu cars hinzugefügt werden, die den jeweiligen Ländernamen in Großbuchstaben enthält.
  • Wie immer kannst du cars ausgeben, um die Früchte deiner Arbeit zu sehen.

Interaktive Übung

Versuche dich an dieser Übung, indem du diesen Beispielcode vervollständigst.

# Import cars data
import pandas as pd
cars = pd.read_csv('cars.csv', index_col = 0)

# Use .apply(str.upper)
for lab, row in cars.iterrows() :
    cars.loc[lab, "COUNTRY"] = row["country"].upper()
Code bearbeiten und ausführen