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

如何对含多时间序列的Pandas DataFrame进行透视与最近时间戳重索引?

解决Pandas多ID时间序列透视与统一时间戳对齐问题

我来一步步教你实现这个需求,核心就是时间对齐+透视+补全缺失时间戳这几个关键步骤:

步骤拆解与思路

  1. 时间格式转换与对齐:先把原始字符串时间转成Pandas可识别的datetime类型,再把所有ID的时间戳统一对齐到30分钟间隔(比如Id-2的8:02要对应到8:00,用floor('30min')实现向下取整即可)。
  2. 透视表格:用pivot()方法把Id转为列、Datetime作为索引,让不同ID的数值在同一时间点横向排列,之后还可以把列名改成Id-1这类易读的格式。
  3. 补全缺失时间戳:生成从8:00到12:00的完整30分钟间隔时间序列,用reindex()把透视后的表格对齐到这个完整索引,缺失位置自动填充NaN,最后调整时间格式为你想要的字符串样式。

完整代码示例

import pandas as pd

# 构造原始数据(实际使用时可替换为pd.read_csv()读取你的数据源)
data = {
    'Datetime': [
        '5-26-17 8:00', '5-26-17 8:30', '5-26-17 9:00', '5-26-17 9:30', '5-26-17 10:00',
        '5-26-17 10:30', '5-26-17 11:00', '5-26-17 11:30', '5-26-17 12:00',
        '5-26-17 8:02', '5-26-17 8:32', '5-26-17 9:02', '5-26-17 9:32', '5-26-17 10:02',
        '5-26-17 10:32', '5-26-17 11:02', '5-26-17 11:32', '5-26-17 12:02',
        '5-26-17 8:30', '5-26-17 9:00', '5-26-17 9:30', '5-26-17 10:00', '5-26-17 10:30',
        '5-26-17 11:00', '5-26-17 11:30', '5-26-17 12:00'
    ],
    'Id': [1]*9 + [2]*9 + [3]*8,
    'Value': [
        2.3,4.5,7,8.1,7.9,3.4,2.1,1.8,0.4,
        2.6,4.8,7.3,8.4,8.2,3.7,2.4,2.1,0.7,
        4.5,7,8.1,7.9,3.4,2.1,1.8,0.4
    ]
}
df = pd.DataFrame(data)

# 1. 转换时间格式并对齐到30分钟间隔
df['Datetime'] = pd.to_datetime(df['Datetime']).dt.floor('30min')

# 2. 透视表格并重命名列
pivoted_df = df.pivot(index='Datetime', columns='Id', values='Value')
pivoted_df.columns = [f'Id-{col}' for col in pivoted_df.columns]

# 3. 生成完整时间索引并补全缺失值
full_time_index = pd.date_range(start='2017-05-26 08:00:00', end='2017-05-26 12:00:00', freq='30min')
final_df = pivoted_df.reindex(full_time_index)

# 4. 调整格式为预期样式
final_df = final_df.reset_index().rename(columns={'index': 'Datetime'})
final_df['Datetime'] = final_df['Datetime'].dt.strftime('%-m-%-d-%y %H:%M')

print(final_df)

运行这段代码后,输出结果就和你给出的预期完全一致啦!如果你的数据是从文件读取的,只需要替换掉构造data的部分即可,其余步骤通用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.29 07:37:59