Pandas pivot_table на дату - PullRequest
       3

Pandas pivot_table на дату

8 голосов
/ 01 апреля 2012

У меня есть панда DataFrame со столбцом даты.Это не индекс.

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

Данные выглядят следующим образом:

['INDEX']                 DATE LOCATION  COUNT
0          2009-01-02 00:00:00      AAH      1
1          2009-01-03 00:00:00      ABH      1
2          2009-01-03 00:00:00      AAH      1
3          2009-01-03 00:00:00      ABH      1
4          2009-01-04 00:00:00      ACH      1

Я использовал:

pivot_table(cdiff, values='COUNT', rows=['DATE','LOCATION'], aggfunc=np.sum)

для поворота значений.Мне нужен способ конвертировать cdiff.DATE в месяц, а не в дату.Я надеюсь, что получится что-то вроде: Данные выглядят так:

  MONTH LOCATION  COUNT
January      AAH      2
January      ABH      2
January      ACH      1

Я попробовал все способы strftime на cdiff.DATE, но безуспешно.Он хочет применить к строкам, а не к объектам серии.

1 Ответ

12 голосов
/ 01 апреля 2012

Я бы предложил:

months = cdiff.DATE.map(lambda x: x.month)
pivot_table(cdiff, values='COUNT', rows=[months, 'LOCATION'],
            aggfunc=np.sum)

Чтобы получить название месяца, передайте другую функцию или используйте встроенную calendar.month_name.Чтобы получить данные в нужном формате, вы должны позвонить reset_index на результат, или вы также можете сделать:

cdiff.groupby([months, 'LOCATION'], as_index=False).sum()

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...