Python Pandas groupby月份日年周

时间:2017-03-06 03:53:40

标签: python pandas dataframe

我有一个像这样的pandas DataFrame:

Day    Month Year       Date Week Data1 Data2
  1  January 2016 01-01-2016    1    15    22
  2  January 2016 01-02-2016    1    16    26
 12  January 2016 01-12-2016    2    18    29
  8 February 2016 02-08-2016    2     9    17

我手动添加了周列,它们是int类型。我希望按周,月,年分组数据,即:2016年1月第1周,2016年1月第2周,2016年2月第2周。问题是我希望结果是DataFrame,其中Data1是列和Data2的总和是列的平均值。

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

我认为您可以使用groupby后跟agg进行所需的聚合。

df.groupby(['Year', 'Month', 'Week']).agg({'Data1':'sum', 'Data2':'mean'})

<强>演示

>>> df.groupby(['Year', 'Month', 'Week']).agg({'Data1':'sum', 'Data2':'mean'})

                    Data1  Data2
Year Month    Week              
2016 February 2         9     17
     January  1        31     24
              2        18     29