如何在 Pandas 中将日期时间转换为日期?

pythonpandasprogramming

在数据分析和操作中,处理日期和时间是一项常见要求。Python 中的 Pandas 库提供了处理日期时间值的强大工具。在本文中,我们将探讨在 Pandas DataFrame 中将日期时间值转换为仅日期格式的过程。

使用日期时间值时,通常需要提取特定组件,例如年、月、日或时间,以便进一步分析或可视化。但是,在某些情况下,我们可能只对日期时间对象的日期部分感兴趣,而不考虑时间信息。

将日期时间值转换为仅日期格式在各种情况下都很有用。例如,按日期聚合数据时,删除时间组件可以简化分析并允许我们专注于日期维度。此外,在根据日期合并或连接数据集时,将日期时间值转换为日期可以帮助更有效地对齐数据。

在本文中,我们将探讨在 Pandas DataFrame 中将日期时间值转换为日期格式的不同方法。我们将演示使用 Pandas 内置函数的直接方法和用于更具体要求的自定义函数。

现在让我们讨论在 Pandas 中将日期时间转换为日期的不同方法。

使用 dt 访问器

Pandas 提供了一个方便的 dt 访问器,它允许我们访问日期时间值的各个组成部分。要使用此方法将日期时间值转换为日期格式,我们可以使用 dt 访问器的 date 属性。

让我们看看它是如何工作的:

示例

import pandas as pd

# 使用日期时间值创建示例 DataFrame
data = {'datetime': ['2022-01-01 10:30:00', '2022-02-15 14:45:00', '2022-03-20 18:00:00']}
df = pd.DataFrame(data)

# 将"datetime"列转换为日期时间类型
df['datetime'] = pd.to_datetime(df['datetime'])

# 使用"dt"提取日期访问器
df['date'] = df['datetime'].dt.date

# 显示 DataFrame
print(df)

说明

  • 首先,我们导入所需的 Pandas 库。

  • 接下来,我们创建一个示例 DataFrame,其中 'datetime' 列中有日期时间值。

  • 要执行日期时间操作,我们需要使用 pd.to_datetime() 函数将 'datetime' 列转换为日期时间类型。

  • 使用 dt 访问器,我们访问 'datetime' 列并使用 date 属性仅提取日期组件。

  • 我们将提取的日期值分配给名为 'date' 的新列。

  • 最后,我们打印 DataFrame 以查看结果。

输出

             datetime        date
0 2022-01-01 10:30:00  2022-01-01
1 2022-02-15 14:45:00  2022-02-15
2 2022-03-20 18:00:00   2022-03-20

使用 apply() 函数

将日期时间值转换为日期格式的另一种方法是使用 apply() 函数和 lambda 函数。当我们有特定的格式要求时,这种方法提供了灵活性。

以下是我们可以实现此目的的方法:

示例

import pandas as pd

# 创建一个带有日期时间值的示例 DataFrame
data = {'datetime': ['2022-01-01 10:30:00', '2022-02-15 14:45:00', '2022-03-20 18:00:00']}
df = pd.DataFrame(data)

# 将"datetime"列转换为日期时间类型
df['datetime'] = pd.to_datetime(df['datetime'])

# 定义一个自定义函数来提取日期
def extract_date(dt):
return dt.date()

# 将自定义函数应用于"datetime"列
df['date'] = df['datetime'].apply(extract_date)

# 显示 DataFrame
print(df)

说明

  • 我们导入必要的 Pandas 库。

  • 接下来,我们创建一个带有日期时间值的示例 DataFrame。

  • 与之前的方法类似,我们使用 pd.to_datetime() 将"datetime"列转换为日期时间类型。

  • 我们定义一个自定义函数 extract_date(),它以日期时间值作为输入,并使用 date() 函数仅返回日期组件。

  • 使用 apply() 函数,我们将 extract_date() 函数应用于"datetime"列的每个元素,并将结果分配给名为'date'。

  • 最后,我们打印 DataFrame 来观察结果。

输出

             datetime        date
0 2022-01-01 10:30:00  2022-01-01
1 2022-02-15 14:45:00  2022-02-15
2 2022-03-20 18:00:00   2022-03-20

结论

总之,在处理时间序列数据或分析时间信息时,将 Pandas 中的日期时间转换为日期是一项常见任务。在本文中,我们探讨了两种不同的方法来完成此任务。

第一种方法涉及使用 Pandas 中的 dt 访问器,它提供了访问和操作日期时间组件的便捷方法。

第二种方法涉及使用 Pandas 中的 to_datetime 函数将日期时间列转换为日期时间数据类型,然后使用 dt 访问器提取日期组件。

通过从本文中获得的见解,您可以自信地处理 Pandas 中的日期时间到日期的转换并简化您的数据分析工作流程。


相关文章