📌  相关文章
📜  将 pandas 中的列转换为日期时间 - Python (1)

📅  最后修改于: 2023-12-03 14:53:44.609000             🧑  作者: Mango

将 pandas 中的列转换为日期时间 - Python

有时候,我们需要将 pandas 数据帧(DataFrames)中的列转换为日期时间格式,以进行更方便的数据处理和分析。在本文中,我将介绍如何使用 pandas 的 to_datetime 函数将列转换为日期时间格式。

1. 导入 pandas 和数据

首先,我们需要导入 pandas 库,并读取一个包含日期时间信息的 CSV 文件。以下是导入 pandas 和数据的代码:

import pandas as pd

# 读取 CSV 文件
data = pd.read_csv('data.csv')

# 打印数据的前几行
print(data.head())
2. 使用 to_datetime 转换列

接下来,我们需要使用 to_datetime 函数将数据帧中的特定列转换为日期时间格式。以下是将名为 date 的列转换为日期时间格式的代码:

data['date'] = pd.to_datetime(data['date'])

# 查看转换后的数据类型
print(data.dtypes)

在上面的代码中,我们首先使用 pd.to_datetime 函数将 date 列转换为日期时间格式。然后,我们使用 dtypes 方法查看转换后的数据类型。如果一切顺利,你应该看到 date 列的数据类型已经从原来的 object 类型变为 datetime64[ns] 类型。

3. 时间戳的格式

当我们将一个列转换为日期时间格式时,我们需要指定该列中时间戳的格式。默认情况下,to_datetime 函数将尝试自动解析时间戳的格式。如果自动解析失败,我们可以手动指定格式。以下是手动指定格式的代码:

data['date'] = pd.to_datetime(data['date'], format='%Y-%m-%d')

# 打印数据的前几行
print(data.head())

在上面的代码中,我们使用 format 参数手动指定了时间戳的格式。在本例中,时间戳的格式为 %Y-%m-%d,其中 %Y 表示年份(包括世纪数),%m 表示月份,%d 表示日。这里需要注意的是,时间戳中使用的字符必须与格式化字符串中的占位符相匹配。

4. 结语

现在,你已经了解了如何将 pandas 中的列转换为日期时间格式。这种数据类型是 pandas 中重要的数据类型之一,能够方便地进行时间序列分析、绘图和统计计算。在实际的数据处理中,我们几乎总是需要将日期时间格式的数据进行处理,因此这是一项必备的技能。

完整代码

import pandas as pd

# 读取 CSV 文件
data = pd.read_csv('data.csv')

# 打印数据的前几行
print(data.head())

data['date'] = pd.to_datetime(data['date'])

# 查看转换后的数据类型
print(data.dtypes)

data['date'] = pd.to_datetime(data['date'], format='%Y-%m-%d')

# 打印数据的前几行
print(data.head())
输出:

   id        date      value
0   1  2021-01-01  10.559333
1   2  2021-01-02   8.839285
2   3  2021-01-03   9.945329
3   4  2021-01-04   9.351611
4   5  2021-01-05  10.136682

id                int64
date             object
value           float64
dtype: object

   id       date      value
0   1 2021-01-01  10.559333
1   2 2021-01-02   8.839285
2   3 2021-01-03   9.945329
3   4 2021-01-04   9.351611
4   5 2021-01-05  10.136682