python - 如何取时间序列数据中每三天的平均值

标签 python pandas dataframe graphlab sframe

我有一个如下所示的时间序列数据:

datetime    | value
2016-01-01  | 1
2016-01-02  | 14
2016-01-03  | 3
2016-01-04  | 15
2016-01-05  | 5
2016-01-06  | 4
2016-01-07  | 7
2016-01-08  | 15

我想要获得的是每三天(以及每周)的平均值,并保留最后一天作为索引,如下所示:

datetime    | value
2016-01-03  | 6
2016-01-06  | 8
2016-01-08  | 11

您可能会注意到,只需对剩余 2 条记录进行平均即可。在 pandas dataframe 或 graphlab SFrame 中是否有一种方便的方法来执行此操作?如果有人可以分享相关资源,那就太好了!

感谢任何帮助!

最佳答案

您可以使用agg通过楼层划分创建的 numpy 数组:

print (np.arange(len(df.index)) // 3)
[0 0 0 1 1 1 2 2]

df = df.groupby(np.arange(len(df.index)) // 3).agg({'datetime': 'last', 'value': 'mean'})
print (df)
     datetime  value
0  2016-01-03      6
1  2016-01-06      8
2  2016-01-08     11

关于python - 如何取时间序列数据中每三天的平均值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41862439/

相关文章:

python - 从文件中读取两列列表并排序

python - Pandas DataFrame 减去横截面

python - 更改facetgrid 上每个hist 面的颜色?

javascript - 如何将 Javascript new Date().toUTCString() 转换为 Python

python - sox 仅在左声道或右声道上创建和播放音调

python - Pandas 通过局部变量查询并获取空值

python - 在 jupyter ipython 笔记本上导入 Pandas 失败

r - 对具有相似名称的列逐行求和

python - 在比较两个数据帧时,有没有有效的方法为单元格分配 id?

python - 合并列上的 DataFrame 列表?