Python 按月份和附加列聚合每日数据

Python 按月份和附加列聚合每日数据,python,pandas,group-by,pandas-groupby,Python,Pandas,Group By,Pandas Groupby,我有一个存储每日数据的数据框,如下所示: Date Product Number Description Revenue 2010-01-04 4219-057 Product A 39.299999 2010-01-04 4219-056 Product A 39.520000 2010-01-04 4219-100 Product B 39.

我有一个存储每日数据的数据框,如下所示:

Date Product Number Description Revenue 2010-01-04 4219-057 Product A 39.299999 2010-01-04 4219-056 Product A 39.520000 2010-01-04 4219-100 Product B 39.520000 2010-01-04 4219-056 Product A 39.520000 2010-01-05 4219-059 Product A 39.520000 2010-01-05 4219-056 Product A 39.520000 2010-01-05 4219-056 Product B 39.520000 2010-02-08 4219-123 Product A 39.520000 2010-02-08 4219-345 Product A 39.520000 2010-02-08 4219-456 Product B 39.520000 2010-02-08 4219-567 Product C 39.520000 2010-02-08 4219-789 Product D 39.520000 但不将其与产品分组

我如何实现这一点

将日期转换为日期时间,然后使用groupby和sum:


序列MS指定按日期分组,并将偏移量设置为每个月的开始

使用以下代码:

data.groupby(['Date','Description'])['Revenue'].sum()

运行此代码并将其输出与OP正在查找的内容进行比较。如果我没有弄错的话,这仍然会导致数据按天分组,而作者希望数据按月分组。我错了吗?这段代码只显示了一个月的数据。此外,日期已更改为1970-01-01,这不是我当前的日期。@Vishveshhah,如您所见,这对我有效,并按预期生成输出。你要么需要提供额外的数据进行调试,要么自己修改一下。@Vishveshaha-你的pandas版本是什么?这在0.24上对我有效。如果您有旧版本,请尝试升级并再次运行。我的版本与旧版本相同。”0.24.2“如果有任何其他问题,我将研究代码。谢谢我的日期是2017-07-29,但转换为1970-01-01 00:00:00.020170729。有什么方法可以用python进行更正吗?
import pandas as pd
import numpy as np
import matplotlib
%matplotlib inline

data.groupby(['DATE','REVENUE']).sum().unstack()
# Do this first, if necessary.
df['Date'] = pd.to_datetime(df['Date'], errors='coerce')

(df.groupby([pd.Grouper(key='Date', freq='MS'), 'Description'])['Revenue']
   .sum()
   .reset_index())

        Date Description     Revenue
0 2010-01-01           A  197.379999
1 2010-01-01           B   79.040000
2 2010-02-01           A   79.040000
3 2010-02-01           B   39.520000
4 2010-02-01           C   39.520000
5 2010-02-01           D   39.520000
data.groupby(['Date','Description'])['Revenue'].sum()