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

Pandas时间序列如何使用[start:end:step]格式按指定周期间隔切片取值

报错原因

你直接在切片的步长位置传W-WED字符串会报错,是因为Pandas的DatetimeIndex标签切片的步长参数默认只支持整数型的位置偏移,暂时不支持直接传入频率字符串作为步长。

正确实现方式

两种常用的简洁写法可以实现需求,效果和你原来生成指定范围周三索引再取值的结果完全一致:

方法1:先切片时间范围,再按周几筛选

Pandas中DatetimeIndex的weekday属性返回值对应周几:0=周一,1=周二,2=周三,依此类推,直接筛选等于2的行即可:

import pandas as pd
import numpy as np

# 你的原始数据构造
indices = pd.date_range(start='feb 01 2020', end='nov 30 2020', freq='D')
sr=pd.Series(index=indices, data=np.random.randn(indices.shape[0]))

# 实现筛选
res = sr['2020-03-01':'2020-09-30'][sr.index.weekday == 2]
print(res.head())

方法2:用asfreq直接指定频率取值

如果确认时间序列是连续无缺失的每日频率,可以先切片后调用asfreq方法直接取每周三的数据,写法更贴近你想要的频率参数逻辑:

res = sr['2020-03-01':'2020-09-30'].asfreq('W-WED')
print(res.head())

两种方法的输出都和你之前的结果一致:

2020-03-04   -0.378698
2020-03-11    1.616860
2020-03-18   -0.738064
2020-03-25    0.375743
2020-04-01   -0.233976
Freq: W-WED, dtype: float64

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 08:15:11