Группа Pandas по мотыльку возвращается только в январе - PullRequest
0 голосов
/ 03 ноября 2019

У меня есть упрощенный файл CSV

Datum/Uhrzeit,Menge,EAN,Marketplace
01.02.2017 12:00:00 GMT+00:00,15,Prod 1,A
01.02.2017 12:00:00 GMT+00:00,22,Prod 1,A
01.03.2017 12:00:00 GMT+00:00,27,Prod 3,A
01.03.2017 12:00:00 GMT+00:00,27,Prod 3,A
01.03.2017 12:00:00 GMT+00:00,26,Prod 2,A
01.03.2017 12:00:00 GMT+00:00,20,Prod 1,A
01.03.2017 12:00:00 GMT+00:00,27,Prod 4,A

Я хотел бы сгруппировать строки по месяцам и рассчитать сумму столбца «Менге» для каждого месяца:

import pandas as pd

df = pd.read_csv('test.csv', index_col=['Datum/Uhrzeit'], parse_dates=['Datum/Uhrzeit'])
print(df.index)
print(df.resample('M').agg({"Menge": "sum"}))
print(df.groupby(pd.Grouper(freq='M')).agg({"Menge": "sum"}))

Однакоэто возвращает

Datum/Uhrzeit              Menge     
2017-01-31 00:00:00+00:00    164

... вместо моего ежемесячного агрегирования.

Не уверен, что я здесь не так сделал.

1 Ответ

0 голосов
/ 03 ноября 2019

Используйте dayfirst=True в read_csv, а затем,

>>> df.resample('M').agg({"Menge": "sum"})
                           Menge
Datum/Uhrzeit                   
2017-02-28 00:00:00+00:00     37
2017-03-31 00:00:00+00:00    127
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...