2024-05-17 03:43:02 发布
网友
我有一个带有时间戳和一些值的时间序列。数据大约每5分钟输入一次。但有时根本没有任何时间戳,或者第一个时间戳可能只有下午3点左右,等等。我该如何可视化/分析差距
timestamp temp 2016-08-02 00:14:01 12.1 2016-08-02 09:05:04 22.0 2016-08-02 09:09:44 12.9 2016-08-02 09:15:01 44.1 2016-08-02 09:19:54 11.3
在您的df中添加时差列:
df['tDiff'] = df.timestamp.diff()
然后,要查找与上一行时间间隔“太大”的行,请运行:
df[df.tDiff > pd.Timedelta('6M')]
当然,如何设置阈值timedelta是一个选择问题。 您可以取另一个值,而不是6 min
为了测试,我稍微扩展了你的数据:
timestamp temp 0 2016-08-02 00:14:01 12.1 1 2016-08-02 09:05:04 22.0 2 2016-08-02 09:09:44 12.9 3 2016-08-02 09:15:01 44.1 4 2016-08-02 09:19:54 11.3 5 2016-08-02 23:58:54 10.0 6 2016-08-03 00:04:01 12.1 7 2016-08-03 09:05:04 22.0 8 2016-08-03 09:09:44 12.9 9 2016-08-03 09:15:01 44.1 10 2016-08-03 09:19:54 11.3
对于这些数据,结果是:
timestamp temp tDiff 1 2016-08-02 09:05:04 22.0 08:51:03 5 2016-08-02 23:58:54 10.0 14:39:00 7 2016-08-03 09:05:04 22.0 09:01:03
例如,截至2016-08-02 09:05:04的读数在超过8小时后出现 在上次阅读之后
对于间隙的图形表示,另一种方法可能更有用
添加上一个时间戳列(插入tDiff):
df['tPrev'] = df.timestamp.shift()
创建一个包含“间隔开始”和“间隔结束”列的数据帧:
gaps = df[(df.timestamp - df.tPrev) > pd.Timedelta('6M')][['tPrev', 'timestamp']]
对于我的源数据,结果是:
tPrev timestamp 1 2016-08-02 00:14:01 2016-08-02 09:05:04 5 2016-08-02 09:19:54 2016-08-02 23:58:54 7 2016-08-03 00:04:01 2016-08-03 09:05:04
但如何生成这样一幅图片是一个很好的素材 另一个问题
您可以从以下内容开始:
df["dtime"]= df.timestamp.diff() timestamp temp dtime 0 2016-08-02 00:14:01 12.1 NaT 1 2016-08-02 09:05:04 22.0 08:51:03 2 2016-08-02 09:09:44 12.9 00:04:40 3 2016-08-02 09:15:01 44.1 00:05:17 4 2016-08-02 09:19:54 11.3 00:04:53
在您的df中添加时差列:
然后,要查找与上一行时间间隔“太大”的行,请运行:
当然,如何设置阈值timedelta是一个选择问题。 您可以取另一个值,而不是6 min
为了测试,我稍微扩展了你的数据:
对于这些数据,结果是:
例如,截至2016-08-02 09:05:04的读数在超过8小时后出现 在上次阅读之后
在注释后编辑
对于间隙的图形表示,另一种方法可能更有用
添加上一个时间戳列(插入tDiff):
创建一个包含“间隔开始”和“间隔结束”列的数据帧:
对于我的源数据,结果是:
但如何生成这样一幅图片是一个很好的素材 另一个问题
您可以从以下内容开始:
相关问题 更多 >
编程相关推荐