【发布时间】:2020-06-05 19:02:41
【问题描述】:
首先,我为这个请求的命名道歉——我有点不确定这个技术到底是什么标签。我会尽量解释清楚。
我在现场有记录器来收集环境数据。他们的内部时钟在被放置在现场之前会与“实时”同步。然而,内部时钟在其整个使用寿命期间开始偏离实时。例如,在现场工作一年后,数据文件仍会报告整点的日志记录(例如 20:00:00),但实际时间可能是 20:07。记录器通常运行多年,日志速率可以在 1 分钟到 4 小时之间(尽管一个文件中的日志速率始终相同)。 我以前一直在使用在内部完成此同步的软件。我现在正在使用不幸的是不包含此类功能的软件;然而,它确实有一个 API,允许在附加到现有数据集之前使用 python 来“预处理”工作。
目标是“拉伸”或“滞后”或更一般地,对齐时间以使最后一个日志等于“真实时间”。一个简单的例子:
原文:
Datetime,Value
24/03/2018 10:00:00,25.966
24/03/2018 11:00:00,27.402
24/03/2018 12:00:00,29.137
24/03/2018 13:00:00,32.001
24/03/2018 14:00:00,33.661
24/03/2018 15:00:00,34.852
24/03/2018 16:00:00,34.252
24/03/2018 17:00:00,31.605
24/03/2018 18:00:00,30.033
24/03/2018 19:00:00,27.790
24/03/2018 20:00:00,26.214
成为:
Datetime,Value
24/03/2018 10:00:00,25.966
24/03/2018 11:00:42,27.402
24/03/2018 12:01:24,29.137
24/03/2018 13:02:06,32.001
24/03/2018 14:02:48,33.661
24/03/2018 15:03:30,34.852
24/03/2018 16:04:12,34.252
24/03/2018 17:04:54,31.605
24/03/2018 18:05:36,30.033
24/03/2018 19:06:18,27.790
24/03/2018 20:07:00,26.214
有哪些方法可以同步/对齐数据?是否需要重新采样?还是有更简单的方法来实现这一点?
日期时间和值
df = {'2018-03-24 10:00:00': {'Value': 25.966}, '2018-03-24 11:00:00': {'Value': 27.402},'2018-03-24 12:00:00': {'Value': 29.137}, '2018-03-24 13:00:00': {'Value': 32.001},'2018-03-24 14:00:00': {'Value': 33.661}, '2018-03-24 15:00:00': {'Value': 34.852},'2018-03-24 16:00:00': {'Value': 34.252}, '2018-03-24 17:00:00': {'Value': 31.605},'2018-03-24 18:00:00': {'Value': 30.033}, '2018-03-24 19:00:00': {'Value': 27.790},'2018-03-24 20:00:00': {'Value': 26.214}}
我们将不胜感激任何帮助,甚至是关于研究方向的建议。
谢谢。
【问题讨论】:
-
这有两个步骤。第一个是根据边界条件校正观察时间。您似乎已经解决了上述问题(手动?)。第二个是重采样,仅当您要求所有传感器之间的观察时间相等时才需要。你有这个要求吗?如果不是,我不会为重新采样而烦恼,因为它会引入一种猜测(因为没有更好的词)并且取决于过滤器的选择等。
-
传感器不需要相等;它们在不同时间在现场下载。然而,“成为”列表只是手动完成的;我实际上不确定如何使用 python 来实现这一点。感谢您的回答。
-
我明白了。我在下面提供了一个我之前写的函数来完成这部分。
标签: python pandas time time-series