Моя цель в следующем кадре данных - подсчитать, сколько автомобилей было продано в определенном месте за данный месяц. Вы заметите, что результаты сводки верны, НО столбцы (даты) не согласованы. Причина, по которой это противоречиво, заключается в том, что я собираю месяц в виде строки (если автомобиль был продан 9 октября и 10 октября, тогда я считаю 2 за октябрь).
Вопрос: как спроектировать примененный метод get_date таким образом, чтобы сводная таблица правильно сортировала даты? Или есть лучший способ подойти к этой проблеме, чтобы получить желаемый результат.
Таблица
Результат сводной таблицы:
Фрейм данных:
df = pd.DataFrame({"LOCATION":["USA","USA","USA","USA","JAPAN","JAPAN"],"CAR":["BMW","BMW","TOYOTA","FORD","BMW","FORD"],"SALE_DATE":pd.to_datetime(["2017-10-09","2017-09-28","2017-10-09","2017-10-12","2017-09-30","2017-09-30"])})
дата применения_строка (для агрегирования по месяцам):
def get_date_str(row):
doi = row["SALE_DATE"]
doi_str = "".join(doi.strftime('%B-%y'))
return doi_str
пивот:
df.pivot_table(values="CAR", index="LOCATION", columns='SALE_DATE', aggfunc='count')