如何在 Pandas 中将日期时间转换为日期?
在数据分析和操作中,处理日期和时间是一项常见要求。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 中的日期时间到日期的转换并简化您的数据分析工作流程。