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
Instrucțiuni pentru exercițiu
- Înlocuiește bucla
forcu o expresie de o singură linie care folosește.apply(str.upper). Rezultatul trebuie să fie același: o coloanăCOUNTRYadăugată lacars, conținând numele țărilor scrise cu majuscule. - Ca de obicei, afișează
carspentru 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()