НачатьНачать бесплатно

Добавление столбца (2)

Использование iterrows() для перебора всех наблюдений в DataFrame библиотеки Pandas легко понять, но этот способ не очень эффективен. На каждой итерации создаётся новый объект Pandas Series.

Если вы хотите добавить столбец в DataFrame, применив функцию к другому столбцу, метод iterrows() в сочетании с циклом for — не лучший выбор. Вместо этого стоит использовать apply().

Сравните версию с iterrows() и версию с apply(), которые дают одинаковый результат для DataFrame 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() является методом, поэтому потребуется немного другой подход:

Это упражнение является частью курса

Средний уровень 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()
Редактировать и запускать код