И как они могут вызвать скрытые сбои

«Ошибки дурака известны миру, но не ему самому. Ошибки мудреца известны ему самому, но не миру». — Чарльз Калеб Колтон

Незнание ошибок, которые мы допускаем в программировании, не обязательно делает нас дураками. Однако это может привести к нежелательным последствиям.

Некоторые ошибки сияют, как бриллиант, и их можно распознать за много миль. Даже если вы их не замечаете, компиляторы (или интерпретаторы) сообщают нам о них, выдавая ошибки.

С другой стороны, существуют некоторые «тихие» ошибки, которые трудно заметить, но они могут вызвать серьезные проблемы.

Они не приводят к каким-либо ошибкам, но заставляют функцию или операцию выполняться не так, как вы думаете. Следовательно, результат меняется незаметно для вас.

Мы узнаем о трех таких проблемах.

Вы аналитик данных, работающий в розничной компании. Вас попросили проанализировать результаты недавно проведенной серии рекламных акций. Одной из задач в этом анализе является расчет общего количества продаж для каждой рекламной акции и общей суммы.

Допустим, данные продвижения хранятся в DataFrame, который выглядит следующим образом (определенно не такой маленький в реальной жизни):

И вот код Pandas для создания этого DataFrame, если вы хотите следовать и выполнять примеры самостоятельно:

import pandas as pd

promotion = pd.DataFrame(
    {
        "promotion_code": ["A2", "A1", "A2", "B1", "A2", None, "A2", "B1", None, "A1"],
        "sales_qty": [34, 32, 26, 71, 44, 27, 64, 33, 45, 90],
        "price": [24.5, 33.1, 64.9, 52.0, 29.0, 47.5, 44.2, 25.0, 42.5, 30.0]
    }
)

Рассчитать общий объем продаж по промокоду несложно. Вам просто нужно использовать функцию groupby:

promotion.groupby("promotion_code").agg(…