0Pricing
Learn AI with Python · 课时

Pandas 中的时间序列

DatetimeIndex、resample()、rolling()、shift()、日期范围生成与重采样

Pandas 中的时间序列 是 CoddyKit 上的免费 Learn AI with Python 课时。 这是第 4 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 Learn AI with Python 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 Learn AI with Python 课程共包含 4 节课。

pandas 中的时间处理

该库提供一流的日期时间支持。将字符串转换为时间戳并按时间建立索引后,就可以使用重采样、滚动窗口和滞后特征。

使用 to_datetime 解析

pd.to_datetime 会将字符串或数字转换为规范的时间戳对象,并自动推断最常见的格式。

import pandas as pd
d = pd.to_datetime(["2026-01-01", "2026-01-05", "2026-02-10"])
print(d)
print(d.dtype)   # datetime64[ns]

使用 date_range 生成日期

pd.date_range 会生成一组间隔均匀的时间戳。freq 代码控制步长:D 表示天,H 表示小时,M 表示月末,依此类推。

rng = pd.date_range("2026-01-01", periods=5, freq="D")
print(rng)
# 2026-01-01 ... 2026-01-05

构建 DatetimeIndex

将日期时间列设为索引会创建 DatetimeIndex,从而启用按时间处理的切片以及 resample/rolling 工具。

ts = pd.Series([10, 12, 9, 15, 11],
               index=pd.date_range("2026-01-01", periods=5, freq="D"))
print(ts)

部分字符串切片

使用 DatetimeIndex 时,可以按部分日期进行切片:年份字符串或月份字符串会选中所有匹配的行。

monthly = pd.Series(range(60),
    index=pd.date_range("2026-01-01", periods=60, freq="D"))
print(monthly["2026-02"].head())   # all of February

使用 resample 降采样

resample 就是针对时间的分组操作。可以将数据降采样到更粗的频率,然后进行聚合,例如将每日数据汇总为每周总和。

weekly = monthly.resample("W").sum()
print(weekly.head())

升采样与填充

重采样到 FINER 频率会产生缺口。结合 .ffill() 可以向前填充上一个值。

hourly = ts.resample("12H").ffill()
print(hourly.head())

滚动窗口

rolling(window) 会在滑动窗口上计算统计量,是平滑噪声序列的移动平均值的基础。

roll = monthly.rolling(window=7).mean()
print(roll.head(10))   # first 6 are NaN (not enough history)

滚动计算的变体

任何归约操作都可以应用于滚动窗口:mean、sum、std、最小值和最大值。7 天滚动 std 可以衡量近期波动性。

vol = monthly.rolling(7).std()
print(vol.tail())

使用 shift 创建滞后值

shift(n) 会将值向前移动 n 个周期,从而创建滞后特征,并支持计算周期之间的变化。

df = pd.DataFrame({"sales": [100, 110, 105, 130]})
df["prev"] = df["sales"].shift(1)
df["pct_change"] = (df["sales"] - df["prev"]) / df["prev"]
print(df)

提取日期组成部分

.dt 访问器可以提供 year、month、dayofweek 等组成部分,适合作为模型特征。

s = pd.Series(pd.date_range("2026-01-01", periods=3, freq="D"))
print(s.dt.dayofweek)   # 0=Monday
print(s.dt.month)

快速检查

请测试您对时间序列的掌握情况。

回顾

时间序列工具箱:

  • 使用 pd.to_datetime 进行解析,使用 pd.date_range 生成日期
  • DatetimeIndex 支持部分字符串切片
  • 使用 resample(freq).agg() 进行升采样或降采样
  • 使用 rolling(window) 计算滚动统计量
  • 使用 shift(n) 创建滞后值;使用 .dt 提取日期组成部分

常见问题解答

「Pandas 中的时间序列」课时是免费的吗?

是的 — 「Pandas 中的时间序列」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 Learn AI with Python 课程的其余内容,请升级到 CoddyKit PRO。 Learn AI with Python 课程共包含 4 节课。

「Pandas 中的时间序列」这节课中我会学到什么?

DatetimeIndex、resample()、rolling()、shift()、日期范围生成与重采样 你通过在浏览器中直接运行的动手代码来练习 Learn AI with Python,全天候 AI 导师会在你学习这节课的过程中回答你的问题。

学习 Learn AI with Python 需要有经验吗?

无需任何先前经验。CoddyKit 上的 Learn AI with Python 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 4 节课,共 4 节。

「Pandas 中的时间序列」课时需要多长时间?

大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。

我能在这节 Learn AI with Python 课中编写并运行代码吗?

能。每节 Learn AI with Python 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。

此课程中的所有课时

  1. GroupBy 与聚合
  2. 数据透视表与交叉制表
  3. 高级合并与连接
  4. Pandas 中的时间序列
← 返回 Learn AI with Python