Spalte hinzufügen (2)

iterrows() zu verwenden, um über jede Beobachtung eines Pandas DataFrame zu iterieren, 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 möchtest, indem du eine Funktion für eine andere Spalte aufrufst, ist die Methode iterrows() in Kombination mit einer for Schleife nicht der beste Weg. Stattdessen solltest du apply() verwenden.

Vergleiche die Version iterrows() mit der Version apply(), um das gleiche Ergebnis im DataFrame brics zu 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 Methode upper() für jeden Namen in der Spalte country aufzurufen. Aber upper() ist 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 zum Anfassen

Probieren Sie diese Übung aus, indem Sie diesen Beispielcode ausführen.

# 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()