Pandas Series 的 at_time 方法

PandasPandasBeginner
立即练习

💡 本教程由 AI 辅助翻译自英文原版。如需查看原文,您可以 切换至英文原版

介绍

在本实验中,我们将探索 Pandas 库中的 at_time() 方法。该方法允许我们根据一天中的特定时间从 Pandas Series 中选择特定的值。

虚拟机使用提示

虚拟机启动完成后,点击左上角切换到 Notebook 标签页,以访问 Jupyter Notebook 进行练习。

有时,你可能需要等待几秒钟,直到 Jupyter Notebook 完成加载。由于 Jupyter Notebook 的限制,操作验证无法自动化。

如果你在学习过程中遇到问题,随时可以向 Labby 寻求帮助。实验结束后请提供反馈,我们将及时为你解决问题。

导入必要的库

首先,我们需要导入 Pandas 库,它提供了高效的数据操作和分析的数据结构。

import pandas as pd

创建带有 DateTime 索引的 Series

接下来,让我们创建一个带有 DateTime 索引的 Pandas Series。该索引将表示不同的时间戳,使我们能够根据一天中的特定时间选择值。

Values = pd.date_range('2021-04-01', periods=6, freq='8H')
series = pd.Series([1, 2, 3, 4, 5, 6], index=Values)
print(series)

输出:

2021-04-01 00:00:00    1
2021-04-01 08:00:00    2
2021-04-01 16:00:00    3
2021-04-02 00:00:00    4
2021-04-02 08:00:00    5
2021-04-02 16:00:00    6
Freq: 8H, dtype: int64

使用 at_time() 选择特定时间的值

现在,让我们使用 at_time() 方法根据特定时间从 Series 中选择值。在这个例子中,我们将选择早上 8:00 的值。

print(series.at_time('8:00'))

输出:

2021-04-01 08:00:00    2
2021-04-02 08:00:00    5
Freq: 24H, dtype: int64

选择不同特定时间的值

让我们尝试选择不同特定时间的值。在这个例子中,我们将选择早上 9:00 的值。

print(series.at_time('9:00'))

输出:

Series([], Freq: 8H, dtype: int64)

处理不存在的时间值

如果指定的时间在索引中不存在,at_time() 方法将返回一个空的 Series。在前面的例子中,我们选择了一个不存在于索引中的时间(早上 9:00),因此返回了一个空的 Series。

处理非 DatetimeIndex

需要注意的是,Series 的索引必须是 DatetimeIndex,at_time() 方法才能正常工作。否则,将会抛出 TypeError。

series = pd.Series([1, 2, 3, 4])
print(series.at_time('10:00'))

输出:

TypeError: Index must be DatetimeIndex

总结

在本实验中,我们学习了 Pandas 库中的 at_time() 方法。该方法允许我们从 Pandas Series 中选择一天中特定时间的值。我们探讨了如何创建一个带有 DateTime 索引的 Series,使用 at_time() 选择值,处理不存在的时间值,以及处理非 DatetimeIndex。at_time() 方法提供了一种强大的方式,可以从 Series 中提取基于特定时间的数据。