You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将时间点数据转换为带读数的区间表(支持R/tidyverse、Python实现)

R/tidyverse 实现方案

核心使用dplyr包的lead()函数提取下一行的时间和读数作为区间终点,实现逻辑极简:

# 加载依赖
library(tidyverse)
# 构造示例数据
df <- tibble(Time = c(0, 1, 2, 3, 4), readings = c(123, 234, 145, 234, 121))
# 转换为区间表
df_interval <- df %>%
  mutate(
    To = lead(Time),
    End = lead(readings)
  ) %>%
  rename(
    From = Time,
    Initial = readings
  ) %>%
  drop_na()

运行后输出结果为4行区间数据,符合需求:

# A tibble: 4 × 4
   From Initial    To   End
  <dbl>   <dbl> <dbl> <dbl>
1     0     123     1   234
2     1     234     2   145
3     2     145     3   234
4     3     234     4   121

注意:执行转换前请确保原始数据已经按Time列升序排序,避免区间顺序错误

Python 实现方案

使用pandas的shift()函数偏移获取下一行值即可完成转换:

import pandas as pd
# 构造示例数据
df = pd.DataFrame({'Time': [0,1,2,3,4], 'readings': [123,234,145,234,121]})
# 转换为区间表
df_interval = df.assign(
    To = df['Time'].shift(-1),
    End = df['readings'].shift(-1)
).rename(
    columns={'Time': 'From', 'readings': 'Initial'}
).dropna().reset_index(drop=True)

内容的提问来源于stack exchange,提问作者William Wong

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 15:45:03