You need to enable JavaScript to run this app. pandas中如何重复DatetimeIndex以生成多次重复的日期范围
优惠活动
大模型
产品
解决方案
定价
更多

pandas中如何重复DatetimeIndex以生成多次重复的日期范围

重复日期序列的正确实现方法

方法1:使用numpy.tile(最简洁)

np.tile会将整个序列作为整体重复,完全匹配你的需求,实现代码如下:

import pandas as pd
import numpy as np

# 生成原始日期序列
rng = pd.date_range('1/1/2011', periods=3, freq='W')
# 重复整个序列3次
repeated_rng = np.tile(rng, 3)
# 如果需要保留DatetimeIndex类型,可额外做类型转换
repeated_rng = pd.DatetimeIndex(repeated_rng)

直接遍历打印repeated_rng即可得到你预期的输出结果。

方法2:使用pandas.concat(纯pandas实现)

如果你不想引入numpy依赖,也可以调整concat的参数实现:

# 将日期序列转为Series后按行拼接,ignore_index用来重置连续索引
repeated_rng = pd.concat([pd.Series(rng)] * 3, ignore_index=True)

原有方法问题说明

  • 你使用pd.concat([rng] * 3, axis=1)失效的原因:axis=1是按列横向拼接,且pd.concat的操作对象需要是Series或DataFrame类型,直接传入DatetimeIndex不会得到纵向拼接的结果。
  • 你使用np.repeat(rng,3)不符合需求的原因:np.repeat是对序列中的每个元素单独重复指定次数,最终会得到每个日期连续出现3次的结果,和整体重复序列的逻辑不符。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.10 07:54:02