Код Middle Производительность и память спрашивают часто обновлено
Обнулить тестовые заказы через loc
Условие
Дан список заказов [order_id, email, amount]. Заказы с почтой, оканчивающейся на @test.local, тестовые: их amount нужно сделать 0. Верните [[order_id, amount], ...] в исходном порядке. Решение должно работать в pandas 3.0 (Copy-on-Write), без цикла по строкам.
Примеры
mark_test_orders([[1, "a@mail.ru", 100], [2, "qa@test.local", 500], [3, "b@ya.ru", 70]]) // [[1, 100], [2, 0], [3, 70]]
mark_test_orders([[1, "x@test.local", 1]]) // [[1, 0]]
mark_test_orders([[1, "a@b.c", 5]]) // [[1, 5]]
Как подойти
Подсказки: 2
- Маска:
df["email"].str.endswith("@test.local") - Присвоение одной операцией через
loc.
Решите в тренажёре
Редактор с автотестами прямо в браузере. Можно решить спокойно, вслух или под таймером, как на собесе.
Термины по теме
Ещё по теме «Производительность и память»
- Чем заменить apply(axis=1)
- Когда помогает тип category
- Категории сумм через np.select
- Ужать DataFrame: category и downcast
- category теряется при concat
- Copy-on-Write в pandas 3.0
- Copy-on-Write: изменение колонки
- Copy-on-Write и SettingWithCopyWarning