Додайте стовпець (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()