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

如何用Pandas将10分钟时间序列转15分钟?含重采样与缺失值方案

针对你的时间序列转换需求,以下是具体解决方案:

一、重采样是正确且高效的方法

将10分钟间隔序列转换为15分钟步长,Pandas的resample是标准解决方案,它能直接按时间区间聚合数据,适配绝大多数时序转换场景。

实现步骤:

首先将你的数据整理为Pandas时间序列结构:

import pandas as pd

time = [pd.Timestamp('2021-01-01 05:30:00'), pd.Timestamp('2021-01-01 05:40:00'), pd.Timestamp('2021-01-01 05:50:00'),
        pd.Timestamp('2021-01-01 06:00:00'), pd.Timestamp('2021-01-01 06:10:00'), pd.Timestamp('2021-01-01 06:20:00'),
        pd.Timestamp('2021-01-01 06:30:00'), pd.Timestamp('2021-01-01 06:40:00'), pd.Timestamp('2021-01-01 06:50:00'),
        pd.Timestamp('2021-01-01 07:00:00')]
value = [4.84,6.92,7.99,8.01,7.07,5.11,7.1,7.03,7.02,8.07]

df = pd.DataFrame({'value': value}, index=time)

然后通过resample指定15分钟步长('15T'),结合聚合函数生成目标序列:

# 按15分钟区间取均值(最常用)
df_resampled_mean = df.resample('15T').mean()

# 其他可选聚合逻辑:取区间第一个值/最后一个值/求和
df_resampled_first = df.resample('15T').first()
df_resampled_last = df.resample('15T').last()
df_resampled_sum = df.resample('15T').sum()
二、其他替代方法

如果重采样的聚合逻辑不符合你的需求,还可以选择以下两种方案:

1. 时间插值法

适合需要平滑连续值的场景(比如传感器读数),先对齐15分钟时间轴,再用插值填充缺失值:

# 生成15分钟间隔的目标时间轴
new_index = pd.date_range(start=df.index.min(), end=df.index.max(), freq='15T')
# 重新索引,缺失位置设为NaN
df_reindexed = df.reindex(new_index)
# 时间加权插值(比线性插值更贴合时序特性)
df_interpolated = df_reindexed.interpolate(method='time')

2. 手动区间映射聚合

适合需要自定义区间逻辑的场景,通过pd.cut划分时间区间后再分组聚合:

# 生成15分钟的区间标签
df['time_bin'] = pd.cut(df.index, bins=pd.date_range(start=df.index.min(), end=df.index.max()+pd.Timedelta(minutes=15), freq='15T'))
# 按区间分组计算均值
df_grouped = df.groupby('time_bin')['value'].mean()
三、缺失数据的处理

缺失数据的处理需结合业务场景选择:

  • 前后填充:缺失段较短时,用前一个/后一个有效值填充:
    df.resample('15T').ffill()  # 向前填充
    df.resample('15T').bfill()  # 向后填充
    
  • 插值填充:连续型时序数据优先用时间加权插值,保证数值平滑性:
    df_reindexed.interpolate(method='time')
    
  • 全局值填充:用全局均值/中位数填充无规律的缺失值:
    df_resampled = df.resample('15T').mean()
    df_resampled.fillna(df['value'].mean(), inplace=True)
    
  • 删除缺失段:如果缺失区间无业务价值,直接删除:
    df_resampled.dropna(inplace=True)
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 02:25:15