python - 将时间序列中的时间戳转换为相同的索引
问题描述
我有一个数据框,每 5 分钟包含一个时间戳,每个 ID 都有一个值。现在,我需要执行一些分析,我想在同一个时间窗口上绘制所有时间序列。我的数据框类似于这个:
ID timestamp value
12345 2017-02-09 14:35:00 60.0
12345 2017-02-09 14:40:00 62.0
12345 2017-02-09 14:45:00 58.0
12345 2017-02-09 14:50:00 60.0
54321 2017-03-09 13:35:00 50.0
54321 2017-03-09 13:40:00 58.0
54321 2017-03-09 13:45:00 59.0
54321 2017-03-09 13:50:00 61.0
例如,在 xy 轴上,我需要使用 x=0 值作为每个 ID 的第一个时间戳,并使用 x=1 作为 5 分钟后的第二个时间戳,依此类推。到目前为止,我使用以下代码每 5 分钟正确重新采样一次:
df = df.set_index('Date').resample('5T').mean().reset_index()
但是,鉴于每个 ID 都以不同的时间戳开始,我不知道如何修改时间戳以便使用每个 ID 的第一个测量日期作为时间戳 0,并且每 5 分钟的每个下一个时间戳作为时间戳 1,时间戳2、timestamp 3、ecc,以绘制每个ID的序列以图形化的方式面对它们。样本最终 df 可能是:
ID timestamp value
12345 0 60.0
12345 1 62.0
12345 2 58.0
12345 3 60.0
54321 0 50.0
54321 1 58.0
54321 2 59.0
54321 3 61.0
使用这个数据框,是否可以绘制在同一点开始和结束的所有系列?从 0 开始,3 天后结束。如何创建如此不同的时间戳并在同一个图中为每个 ID 绘制每个系列?非常感谢你
解决方案
推荐阅读
- recursion - 模拟二进制加法 - DrRacket 中级学生与 Lambda
- python - 打包时如何设置解释器标志
- css - 填充空格后 Tailwind CSS 截断
- ruby-on-rails - 在 Ubuntu 中安装中间人的问题
- java - FlexibleSerchQuery 中的日期减法
- opencv - 使用 OpenVR TrackedCamera 进行 OpenCV 立体校正和块匹配
- c - 编译 uboot 时出现“flex 扫描仪中的输入失败”错误
- c - 为什么这个不正确的记忆斐波那契函数会起作用?
- laravel - laravel group by 从表中获取最新记录
- c# - 我正在尝试获取 App.Config 属性,但它们返回 null