ПочатиПочніть безкоштовно

Додайте стовпець (2)

Використовувати iterrows() для ітерації за кожним спостереженням у датафреймі Pandas легко для розуміння, але не дуже ефективно. На кожній ітерації створюється новий об'єкт Pandas Series.

Якщо потрібно додати стовпець до датафрейму, викликаючи функцію на іншому стовпці, поєднання методу iterrows() з циклом for — не найкращий вибір. Натомість варто використовувати apply().

Порівняйте версію з iterrows() із версією з apply(), щоб отримати той самий результат у датафреймі brics:

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

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

Можемо зробити подібну річ, щоб викликати метод upper() для кожної назви в стовпці country. Однак upper() — це метод, тож нам знадобиться дещо інший підхід:

Ця вправа є частиною курсу

Intermediate Python

Переглянути курс

Інструкції до вправи

  • Замініть цикл for на однорядковий вираз з .apply(str.upper). Виклик має дати той самий результат: до cars має бути додано стовпець COUNTRY, що містить назви країн у верхньому регістрі.
  • Як завжди, виведіть cars, щоб побачити результати своєї праці

Інтерактивна практична вправа

Спробуйте виконати цю вправу, доповнивши цей зразок коду.

# 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()
Редагувати та запускати код