Предположим, у нас есть следующее DataFrame
, которое детализирует ошибки в системе отслеживания ошибок:
import pandas as pd
bugs = pd.DataFrame([
{'key': 'ABC-1', 'priority': 'high', 'start': pd.Timestamp(2018, 1, 1), 'end': pd.Timestamp(2018,3,20)},
{'key': 'ABC-2', 'priority': 'med', 'start': pd.Timestamp(2018, 1, 2), 'end': pd.Timestamp(2018,1,20)},
{'key': 'ABC-3', 'priority': 'high', 'start': pd.Timestamp(2018, 2, 3), 'end': pd.Timestamp(2018,3,20)},
{'key': 'ABC-4', 'priority': 'med', 'start': pd.Timestamp(2018, 1, 4), 'end': pd.Timestamp(2018,3,20)},
{'key': 'ABC-5', 'priority': 'high', 'start': pd.Timestamp(2018, 2, 5), 'end': pd.Timestamp(2018,2,20)},
{'key': 'ABC-6', 'priority': 'med', 'start': pd.Timestamp(2018, 3, 6), 'end': pd.Timestamp(2018,3,20)}
], columns=['key', 'priority', 'start', 'end'])
Здесь start
и end
представляют дату, когда ошибка была впервые обнаружена, идата его закрытия.
Как рассчитать количество «открытых» ошибок по месяцам с разбивкой по приоритетам?То есть вывод, который выглядит следующим образом:
High Med
Month
January 1 2
February 3 1
March 2 2
Задача состоит в том, чтобы принять во внимание даты начала и окончания.Таким образом, ошибка с приоритетом «high», которая была открыта 5 января и закрыта 3 февраля, должна учитываться как ошибка «high» с приоритетом за январь и февраль, но не за март.И так далее.