Logo
Section 1 / 6

Pandas 日期和时间数据类型

学习 Pandas 中用于日期和时间的数据类型。

导入

Pandas 日期和时间数据类型

学习 Pandas 中用于日期和时间的数据类型。

日期和时间数据类型

我们可以用三种主要形式来表示日期和时间:

  • 特定的日期或时间(例如:2021-12-10,2021-11-25 14:59:00)
  • 固定的时间间隔(例如:小时、周、月)
  • 持续时长(例如:3周、4小时30分钟)

![时间间隔可以精确到纳秒](http://network.jancsitech.net:9000/pageflux-ai/images/general/202509/1758015776023773525.svg "Time intervals can be expressed as sensitive as nanoseconds" width="600" height="400")

Pandas 库提供了多种函数和方法,能够高效且便捷地处理这些不同的时间形式。正确使用合适的日期与时间数据类型非常重要,否则我们将无法使用 Pandas 提供的日期和时间相关功能。

datetime64[ns] 数据类型可用于表示日期和时间值。具有 datetime64[ns] 类型的数据被称为 Timestamp(时间戳)。一个 Timestamp 同时包含日期和时间信息。我们可以使用 to_datetime 构造器将表示日期的字符串转换为时间戳。

1import pandas as pd 2 3mydate = pd.to_datetime("2021-11-10") 4 5print(mydate)

由于该字符串仅包含日期部分,因此生成的时间戳中时间部分为零。

另一种常用于日期和时间操作的数据类型是 timedelta64[ns],它用于表示两个 datetime 对象之间的时间差。

1import pandas as pd 2 3first_date = pd.to_datetime("2021-10-10") 4second_date = pd.to_datetime("2021-10-02") 5 6diff = first_date - second_date 7 8print(diff)

时间差以天数计算。Timedelta 对象具有一个 days 属性,可返回整数形式的天数。

1import pandas as pd 2 3first_date = pd.to_datetime("2021-10-10") 4second_date = pd.to_datetime("2021-10-02") 5 6diff = first_date - second_date 7 8print(type(diff)) 9print("\n") 10print(diff.days)

我们之前使用的 staff 数据集中包含两列日期信息:date_of_birth(出生日期)和 start_date(入职日期)。但这两列当前是以 object 类型存储的。为了对它们执行日期相关的操作,我们需要将其数据类型进行转换,这可以通过 astype 函数实现。

1import pandas as pd 2 3staff = pd.read_csv("staff.csv") 4 5staff = staff.astype({ 6 "date_of_birth": "datetime64[ns]", 7 "start_date": "datetime64[ns]", 8}) 9 10print(staff.dtypes)

我们已经介绍了两种用于日期和时间的基本数据类型。在进行日期处理任务时,正确使用这些数据类型对于充分发挥 Pandas 的功能至关重要。

使用 Pandas 进行字符串操作

从日期中提取信息