Začněte nyníZačněte zdarma

Přidání sloupce (2)

Iterace přes každý řádek Pandas DataFrame pomocí iterrows() je snadno pochopitelná, ale ne příliš efektivní. Při každé iteraci se totiž vytváří nová Pandas Series.

Pokud chceš přidat sloupec do DataFrame tak, že zavoláš funkci na jiný sloupec, kombinace metody iterrows() s cyklem for není tím nejlepším řešením. Místo toho je lepší použít apply().

Porovnej verzi s iterrows() a verzi s apply(), které dávají stejný výsledek v DataFrame brics:

for lab, row in brics.iterrows() :
    brics.loc[lab, "name_length"] = len(row["country"])

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

Něco podobného můžeme udělat i pro volání metody upper() na každý název ve sloupci country. Protože upper() je ale metoda, budeme potřebovat trochu jiný přístup:

Toto cvičení je součástí kurzu

Intermediate Python

Zobrazit kurz

Pokyny k cvičení

  • Nahraď cyklus for jednořádkovým zápisem využívajícím .apply(str.upper). Výsledek by měl být stejný: do cars se přidá sloupec COUNTRY obsahující názvy zemí převedené na velká písmena.
  • Jako obvykle vypiš cars, abys viděl/a výsledky své práce.

Interaktivní cvičení na vyzkoušení si v praxi

Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.

# 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()
Upravit a spustit kód