我们正在 ubuntu 18.04 服务器上使用 python,并将来自温度传感器的实时数据存储在 MySQL 数据库上。数据库安装在我们的服务器上。
我们想要做的是增加一个时间戳,我们以 20 分钟的间隔检索最新的值,这意味着每 20 分钟我们从 MySQL 数据库中的传感器检索最新的温度值。我们只希望间隔为 0.0、0.20、0.40。
递增示例
2019-07-26 00:00:00
2019-07-26 00:20:00
2019-07-26 00:40:00
2019-07-26 01:00:00
...
2019-07-26 23:40:00
2019-07-27 00:00:00
...
2019-07-30 23:40:00
2019-08-01 00:00:00
这是我们想要实现的基本思想,但我们知道这是一种非常糟糕的编码方式,我们想要更动态的代码。我们想象也许有一个函数,或者是我们没有想到的其他方式。基本思想如下:
for x in range (0, 24, 1)
for y in range (0, 60, 20)
a = pd.read_sql('SELECT temperature1m FROM Weather_Station WHERE timestamp > "2019-07-26 %d:%d:00" AND timestamp < "2019-07-26 %d:%d:00" ORDER BY timestamp DESC LIMIT 1' % (x, y, x, y+20), conn).astype(float).values
在我们的数据库中,我们可以检索传感器上的第一个和最后一个时间戳。
lastLpnTime = pd.read_sql('SELECT MAX(timestamp) FROM Raw_Data WHERE topic = "lpn1"', conn).astype(str).values
firstLpnTime = pd.read_sql('SELECT MIN(timestamp) FROM Raw_Data WHERE topic = "lpn1"', conn).astype(str).values
因此我们想象我们可以说:
从firstLpnTime到lastLpnTime,以20分钟的间隔从0.00、0.20或0.40执行此操作,从MySQL数据库检索数据
但是我们如何做到这一点呢?
最佳答案
如果您将数据加载到 pandas 数据框中,您可以使用 pd.resample 在所需的时间段内对它们进行采样。 .
关于python - Python中有没有增加时间戳的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57410313/