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

Pandas技术问询:如何将series2重采样匹配series1的DatetimeIndex

匹配Pandas时间序列索引的两种实用方法

嘿,这个场景我之前处理过!要让series2的索引完全匹配series1的DatetimeIndex,其实有两种思路,看你具体需求来选:

方法一:重采样聚合后对齐索引

因为你的series2频率是30秒,比series1的1分钟频率更高,我们可以先把series2按series1的频率(1分钟)做聚合,再用series1的索引来筛选结果:

# 第一步:将series2重采样为1分钟频率,这里以取每个分钟区间的最后一个值为例
# 你也可以根据需求改成.mean()/.first()/.sum()等聚合方式
series2_resampled = series2.resample('1T').last()

# 第二步:用series1的索引对齐,得到完全匹配的结果
series2_matched = series2_resampled.reindex(series1.index)

这个方法适合你需要对高频数据做聚合统计的场景,比如想得到每个分钟的平均/总和值,而不是仅仅取精确时间点的数据。

方法二:直接按目标索引提取/填充

如果你的需求只是获取series2中与series1索引完全对应时间点的数据,或者需要处理可能的缺失时间点,可以直接用reindex或者loc:

精确匹配(无缺失时)

因为你的series1索引都是整分钟点,而series2的索引包含这些时间点(每30秒一个),所以直接提取就行:

series2_matched = series2.loc[series1.index]

处理缺失时间点

如果series1的某些时间点在series2中不存在,会返回NaN,这时候可以用填充方法:

# 向前填充(用前一个最近的值填充)
series2_matched = series2.reindex(series1.index, method='ffill')

# 或者向后填充(用后一个最近的值填充)
series2_matched = series2.reindex(series1.index, method='bfill')

这个方法更直接,适合不需要聚合,只需要对齐时间点的场景。

你可以根据自己的业务需求选择对应的方法,两种方式都能完美匹配series1的DatetimeIndex~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.08 18:42:34