Датафреймы группы Pandas по годам и месяцам - PullRequest
0 голосов
/ 14 ноября 2018

У меня есть следующий фрейм данных с двумя столбцами «ДАТА» и «Доход»

dft = pd.DataFrame(chunk, columns=['DATE','Income'])
dft['DATE'] =  pd.to_datetime(dft['DATE'], format='%m/%d/%Y')
_= dft.sort_values(by='DATE', ascending=1)

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

monthlyincome = dft.groupby(dft['DATE'].dt.strftime('%B')) 
[['Income']].sum().reset_index()

Конеццель состоит в том, чтобы затем поместить это в гистограмму.Я думал преобразовать в два списка, а затем использовать что-то вроде:

plt.bar(xaxis,yaxis)

Как я могу заставить это работать?

Ответы [ 2 ]

0 голосов
/ 14 ноября 2018

Окончательное решение было:

dft = pd.DataFrame(chunk, columns=['DATE','Income'])
dft['DATE'] =  pd.to_datetime(dft['DATE'], format='%m/%d/%Y')
_= dft.sort_values(by='DATE', ascending=1)

periods = dft.DATE.dt.to_period("M")
group = dft.groupby(periods).sum()
group = group.reset_index()

Благодаря Mayank.

0 голосов
/ 14 ноября 2018

Попробуйте это:

periods = dft.DATE.dt.to_period("M")
group = dft.groupby(periods).sum()

Это должно вернуть вам год и месяц вместе.

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