Data Science Academy · 课时

时区和日期范围

本地化时间并生成日期

第 4 / 4 课13 个步骤

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

时间需要明确归属

东京上午 9 点并不等于伦敦上午 9 点。现实世界中的时间戳需要时区,这样它们在任何地方都指向同一时刻。🌍

无时区与有时区

没有时区的时间戳称为无时区时间。知道所属时区的时间戳则称为有时区时间。混用二者会导致隐蔽而棘手的错误。

ts = pd.Timestamp("2024-03-15 09:00")
print(ts.tz)  # None means naive

附加时区

使用 tz_localize 为无时区时间标记其真实时区。这表示该时钟读数实际是在哪个地方记录的。

ts = ts.tz_localize("Asia/Tokyo")

在时区之间转换

获得时区信息后,可以使用 tz_convert 切换时区。底层表示的时刻保持不变,只有显示的时钟时间会改变。

ts.tz_convert("Europe/London")

先本地化,再转换

正确的顺序是先本地化,再转换。tz_localize 设置起始时区,tz_convert 负责移动到目标时区。切勿转换无时区的值。

s.dt.tz_localize("UTC").dt.tz_convert("US/Eastern")

UTC 是您的基准

将数据存储为 UTC,仅在显示时进行转换。这样可以避免混淆,也能完全避开夏令时带来的麻烦。

pd.to_datetime(df["ts"], utc=True)

生成日期范围

需要一组整齐的日期序列吗?date_range 可以通过一次调用,根据起始日期、结束日期和频率构建日期范围。

pd.date_range("2024-01-01", "2024-01-07")

设置频率

freq 参数控制时间间隔:"D" 表示每天,"h" 表示每小时,"ME" 表示月末。这些规则与重采样时使用的规则相同。

pd.date_range("2024-01-01", periods=12, freq="ME")

按数量而不是结束日期生成

省略结束日期并传入 periods,即可得到准确数量的时间步长。当您知道数量但不知道结束时间时,这种方式非常方便。

pd.date_range("2024-01-01", periods=30, freq="D")

将日期范围用作索引

日期范围非常适合用作完整时间序列的索引,它能显露缺失的日期,之后您可以填充或标记这些日期。

df = df.reindex(pd.date_range("2024-01-01", periods=31))

快速构建日期特征

将 date_range 与 dt 访问器结合,可以构建日历、填补空缺,或为预测时间范围中的每一天添加标签。

pd.date_range("2024-01-01", periods=7).day_name()

快速检查

您有一个无时区时间戳,并希望在另一个时区中显示它。

回顾:时区与日期范围

您按照正确的方式本地化并转换了时区,以 UTC 作为基准,并使用 date_range 构建了整齐的日历。⏰

免费开始

用 AI 导师学习 Python — 免费

在浏览器中编写并运行真实代码,获得全天候 AI 导师的即时帮助,并在网页或应用中继续学习。

课程
30
课程
120

常见问题解答

「时区和日期范围」课时是免费的吗?

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

「时区和日期范围」这节课中我会学到什么?

本地化时间并生成日期 你通过在浏览器中直接运行的动手代码来练习 Data Science Academy,全天候 AI 导师会在你学习这节课的过程中回答你的问题。

学习 Data Science Academy 需要有经验吗?

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

「时区和日期范围」课时需要多长时间?

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

我能在这节 Data Science Academy 课中编写并运行代码吗?

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

此课程中的所有课时

  1. 将字符串解析为日期时间
  2. 提取年份、月份和星期几
  3. 重采样为每日或每月数据
  4. 时区和日期范围
← 返回 Data Science Academy