Pandas group_by date and resample

时间:2016-09-08 23:55:54

标签: python pandas

我有一些看起来像这样的数据框:

    A   B   C   date
0   J   Y   2   2013-02-01 14:21:02.070030
1   X   X   0   2013-02-01 15:49:33.110849
2   Y   D   9   2013-02-01 06:47:19.369514
3   Y   C   17  2013-02-01 08:56:11.751781
4   3   J   21  2013-02-01 14:19:12.017232

我想按日期分组,然后计算,但省略有关小时,分钟,秒等的信息。

看起来像这样的东西有效:

df.set_index('date').resample('D').count()

两个问题:

  1. 为什么这样做?这是正确的方法吗?
  2. 为什么df.group_by('date').resample('D').count()之类的东西不起作用?

1 个答案:

答案 0 :(得分:4)

resample在某种意义上只是groupby的一个特例 - 而不是对不同的值进行分组,这是grouppy('date')将要做的事情,它将索引的基于时间的转换分组,这是为什么需要设置索引。或者,您可以这样做:

df.groupby(pd.Grouper(key='date', freq='D')).count()

在即将发布的版本0.19.0中,您可以像这样编写上述内容。

df.resample('D', on='date').count()