【Python】将2018/5/12类型的日期数据转换为年(2018)、月(5)、日(12)三列

一、问题引入

【Python】将2018/5/12类型的日期数据转换为年(2018)、月(5)、日(12)三列_第1张图片
我们看到上面的日期格式和我们常规2018-5-12的格式不同。

我们的目标是把日期生成三列数据,分别是年、月、日。

二、问题解决

data2 = data.copy()
data2['order_date'] = data2['order_date'].apply(pd.to_datetime, format = '%Y-%m-%d')
data2['Year'] = data2.order_date.dt.year
data2['Month'] = data2.order_date.dt.month
data2['Day'] = data2.order_date.dt.day
data2

【Python】将2018/5/12类型的日期数据转换为年(2018)、月(5)、日(12)三列_第2张图片

三、代码解读

这段代码将 DataFrame data2 中的 order_date 列转换为年、月、日三个列,并将结果存储在新的列 Year、Month 和 Day 中。

具体来说,data2.order_date.dt 将 order_date 列转换为 Pandas 的 datetime 类型,并返回一个 DatetimeProperties 对象,该对象包含一些方法和属性,用于操作和提取日期和时间信息。例如,dt.year、dt.month 和 dt.day 分别返回 order_date 列中每个日期的年份、月份和日份。然后,通过将这些属性赋值给新的列 Year、Month 和 Day,将这些信息添加到 DataFrame 中。

需要注意的是,如果 order_date 列不是 datetime 类型,上述代码将会报错。如果是字符串类型,可以使用 pd.to_datetime() 函数将其转换为 datetime 类型,例如:

import pandas as pd

# 创建示例数据
data = {'order_date': ['2022-01-01', '2022-02-15', '2022-03-28']}
df = pd.DataFrame(data)

# 将 "order_date" 列转换为 datetime 类型,并提取年、月、日信息
df['order_date'] = pd.to_datetime(df['order_date'])
df['Year'] = df.order_date.dt.year
df['Month'] = df.order_date.dt.month
df['Day'] = df.order_date.dt.day

【Python】将2018/5/12类型的日期数据转换为年(2018)、月(5)、日(12)三列_第3张图片

在上述代码中,我们先创建了一个包含三个日期字符串的示例数据,然后使用 pd.to_datetime() 函数将 order_date 列转换为 datetime 类型,并提取年、月、日信息存储到新的列中。

你可能感兴趣的:(Python3常用到的函数总结,python,pandas,数据分析)