1. Học hỏi
  2. /
  3. Khoa Học
  4. /
  5. Python nâng cao

Connected

Bài tập

Thêm cột (2)

Dùng iterrows() để lặp qua từng quan sát của một Pandas DataFrame thì dễ hiểu, nhưng không hiệu quả. Ở mỗi vòng lặp, bạn đang tạo ra một Pandas Series mới.

Nếu bạn muốn thêm một cột vào DataFrame bằng cách gọi một hàm trên một cột khác, thì kết hợp iterrows() với vòng lặp for không phải là cách tối ưu. Thay vào đó, bạn nên dùng apply().

So sánh phiên bản dùng iterrows() với phiên bản dùng apply() để thu được cùng kết quả trong DataFrame brics:

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

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

Ta có thể làm điều tương tự để gọi phương thức upper() trên mọi tên trong cột country. Tuy nhiên, upper() là một method, vì vậy chúng ta sẽ cần một cách tiếp cận hơi khác:

Hướng dẫn

100 XP
  • Thay vòng lặp for bằng một dòng dùng .apply(str.upper). Lệnh gọi này phải cho cùng kết quả: một cột COUNTRY được thêm vào cars, chứa phiên bản viết hoa của tên quốc gia.
  • Như thường lệ, in cars ra để xem thành quả công sức của bạn