使用 Pandas 从 DateTime 变量中提取特征的方法有哪些?

pandasserver side programmingprogramming更新于 2025/10/12 5:37:17

从 DateTime 对象读取并提取有效信息是数据分析中非常重要的任务。Pandas 包提供了一些实用的工具来从 DateTime 对象中提取特征。

在 Pandas 中,series.dt() 方法用于访问给定时间序列中的年、月、日等组成部分。

series.dt() 方法具有一些属性,可用于提取年、月、季度和日的特征。在下面的示例中,我们将使用其中一些属性来提取特征。

示例 1

您可以看到,我们创建了一个包含 10 个不同时间戳的 Pandas 系列。然后,我们使用 dt.day 属性仅访问时间序列中的年份。

# 导入 pandas 包
import pandas as pd

# 创建 pandas 序列
s = pd.Series(pd.date_range('2021-01-01 2:30', periods=10, freq='30H10min'))

打印(s)

# 访问日期
result = s.dt.day
print("Output:",result)

输出

输出如下所示 −

0    2021-01-01 02:30:00
1    2021-01-02 08:40:00
2    2021-01-03 14:50:00
3    2021-01-04 21:00:00
4    2021-01-06 03:10:00
5    2021-01-07 09:20:00
6    2021-01-08 15:30:00
7    2021-01-09 21:40:00
8    2021-01-11 03:50:00
9    2021-01-12 10:00:00
dtype: datetime64[ns]

Output:
0    1
1    2
2    3
3    4
4    6
5    7
6    8
7    9
8   11
9   12
dtype: int64

初始系列的第一个时间戳为 2021-01-01 02:30:00,后续时间戳以 30 小时 10 分钟为增量递增,上述输出块的第二部分显示从 DateTime 对象访问的日期。

示例 2

在上述示例中应用 dt.hour 属性,从 10 个时间戳中获取小时数据。

# 导入 pandas 包
import pandas as pd

# 创建 pandas 系列
s = pd.Series(pd.date_range('2021-01-01 2:30', periods=10, freq='30H10min'))

打印次数

# 访问小时数
result = s.dt.hour
print("Output:",result)

输出

输出如下所示 −

0    2021-01-01 02:30:00
1    2021-01-02 08:40:00
2    2021-01-03 14:50:00
3    2021-01-04 21:00:00
4    2021-01-06 03:10:00
5    2021-01-07 09:20:00
6    2021-01-08 15:30:00
7    2021-01-09 21:40:00
8    2021-01-11 03:50:00
9    2021-01-12 10:00:00
dtype: datetime64[ns]

Output:
0    2
1    8
2   14
3   21
4    3
5    9
6   15
7   21
8    3
9   10
dtype: int64

正如我们在上面的输出块中看到的,series.dt 函数已成功使用 hour 属性返回了小时数据。


相关文章