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


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

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

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

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

现在让我们讨论我们可以使用哪些不同的方法在pandas中将日期时间转换为日期。

使用dt访问器

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

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

示例

import pandas as pd

# Create a sample DataFrame with datetime values
data = {'datetime': ['2022-01-01 10:30:00', '2022-02-15 14:45:00', '2022-03-20 18:00:00']}
df = pd.DataFrame(data)

# Convert 'datetime' column to datetime type
df['datetime'] = pd.to_datetime(df['datetime'])

# Extract date using the 'dt' accessor
df['date'] = df['datetime'].dt.date

# Display the DataFrame
print(df)

解释

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

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

  • 要执行日期时间操作,我们需要使用pd.to_datetime()函数将'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

# Create a sample DataFrame with datetime values
data = {'datetime': ['2022-01-01 10:30:00', '2022-02-15 14:45:00', '2022-03-20 18:00:00']}
df = pd.DataFrame(data)

# Convert 'datetime' column to datetime type
df['datetime'] = pd.to_datetime(df['datetime'])

# Define a custom function to extract date
def extract_date(dt):
    return dt.date()

# Apply the custom function to the 'datetime' column
df['date'] = df['datetime'].apply(extract_date)

# Display the DataFrame
print(df)

解释

  • 我们导入必要的Pandas库。

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

  • 与前面的方法类似,我们使用pd.to_datetime()将'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函数将datetime列转换为datetime数据类型,然后使用dt访问器提取日期组件。

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

更新于:2023年8月3日

3K+ 次浏览

启动您的职业生涯

完成课程获得认证

开始学习
广告