我有一些数据框,如下所示:
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()
两个问题:
- 为什么会这样?这是正确的方法吗?
- 为什么像
df.group_by('date').resample('D').count()
这样的东西不起作用?
最佳答案
resample
在某种意义上只是 groupby 的一种特殊情况 - 而不是对不同值进行分组,这是 grouppy('date')
所做的,它分组基于时间的索引转换,这就是您需要设置索引的原因。或者,您可以这样做:
df.groupby(pd.Grouper(key='date', freq='D')).count()
在即将推出的版本0.19.0
中,您将能够像这样编写上面的内容。
df.resample('D', on='date').count()
关于python - Pandas 按日期分组并重新采样,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39401821/