pandas - 重新采样熊猫系列
问题描述
我有一个简单的时间序列
2014-11-17 05:00:00+00:00 1.30367
2014-11-17 05:01:00+00:00 1.30352
2014-11-17 05:02:00+00:00 1.30382
2014-11-17 05:03:00+00:00 1.30373
2014-11-17 05:04:00+00:00 1.30425
2014-11-17 05:05:00+00:00 1.30399
2014-11-17 05:06:00+00:00 1.30378
我想使用“2min”重新采样,例如理想情况下我想得到
2014-11-17 05:01:00+00:00 1.30352
2014-11-17 05:03:00+00:00 1.30373
2014-11-17 05:05:00+00:00 1.30399
2014-11-17 05:07:00+00:00 1.30378
内置的重采样给了我
2014-11-17 05:00:00+00:00 1.30367
2014-11-17 05:02:00+00:00 1.30382
2014-11-17 05:04:00+00:00 1.30425
2014-11-17 05:06:00+00:00 1.30378
我正在使用 series.resample(rule="2min", label="right", closed="right").last() 我对第一点特别感到困惑。
非常感谢
解决方案
您不想使用label='right'
,而是使用loffset
:
from io import StringIO
import pandas
data = StringIO("""\
2014-11-17 05:00:00+00:00,1.30367
2014-11-17 05:01:00+00:00,1.30352
2014-11-17 05:02:00+00:00,1.30382
2014-11-17 05:03:00+00:00,1.30373
2014-11-17 05:04:00+00:00,1.30425
2014-11-17 05:05:00+00:00,1.30399
2014-11-17 05:06:00+00:00,1.30378
""")
window = pandas.offsets.Minute(2)
df = (
pandas.read_csv(data, parse_dates=[0], header=None, names=['dt', 'value'])
.set_index(['dt'])
.resample(window, loffset=window/2)
.last()
)
这给了我:
value
dt
2014-11-17 05:01:00+00:00 1.30352
2014-11-17 05:03:00+00:00 1.30373
2014-11-17 05:05:00+00:00 1.30399
2014-11-17 05:07:00+00:00 1.30378
推荐阅读
- node.js - 我在从 Docker 容器到本地运行的 API 的 API 调用中映射端口是否错误?
- python - 散点图中的聚类和等高线
- sql - 在oracle中以嵌套方式使用rank函数
- c# - 解析变量以返回 C# - 脚本任务转换的问题
- python-3.x - 以编程方式分配 python3 类实例属性
- flutter - 如何在 Flutter WebView 中下载文件?
- excel - 如何在新类对象的声明中使用单元格值?
- grpc - GRPC io.grpc.StatusRuntimeException:不可用:io 异常
- node.js - 如何使用 nodejs 在 Linux 中创建新用户
- javascript - 在循环的最后一次迭代时发出警报