如何使用pandas从DateTime变量中提取特征?


从DateTime对象中读取和提取有效信息是数据分析中一项非常重要的任务。pandas包提供了一些有用的工具来执行从DateTime对象中提取特征的操作。

在pandas中,series.dt()方法用于访问给定时间序列的年份、月份、日期等组件。

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

示例1

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

# importing pandas package
import pandas as pd

#creating the pandas Series
s = pd.Series(pd.date_range('2021-01-01 2:30', periods=10, freq='30H10min'))

print(s)

# access day
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个时间戳的小时数据。

# importing pandas package
import pandas as pd

#creating the pandas Series
s = pd.Series(pd.date_range('2021-01-01 2:30', periods=10, freq='30H10min'))

print(s)

# access hour
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属性返回了小时数据。

更新于:2022年3月7日

252 次浏览

启动你的职业生涯

完成课程获得认证

开始学习
广告