ÎncepețiÎncepe gratuit

Adaugă o coloană (2)

Folosirea iterrows() pentru a itera prin fiecare observație dintr-un DataFrame Pandas este ușor de înțeles, dar nu foarte eficientă. La fiecare iterație, se creează un nou obiect Pandas Series.

Dacă vrei să adaugi o coloană la un DataFrame apelând o funcție pe o altă coloană, metoda iterrows() combinată cu o buclă for nu este cea mai bună abordare. În schimb, poți folosi apply().

Comparând varianta cu iterrows() și varianta cu apply(), ambele produc același rezultat în DataFrame-ul brics:

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

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

Putem face ceva similar pentru a apela metoda upper() pe fiecare nume din coloana country. Totuși, deoarece upper() este o metodă, vom avea nevoie de o abordare ușor diferită:

Acest exercițiu face parte din cursul

Python intermediar

Vezi cursul

Instrucțiuni pentru exercițiu

  • Înlocuiește bucla for cu o expresie de o singură linie care folosește .apply(str.upper). Rezultatul trebuie să fie același: o coloană COUNTRY adăugată la cars, conținând numele țărilor scrise cu majuscule.
  • Ca de obicei, afișează cars pentru a vedea rezultatul muncii tale.

Exercițiu interactiv practic

Încearcă acest exercițiu completând acest cod de exemplu.

# 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()
Editează și rulează codul