如何在 pandas.to_datetime 中指定格式


您可以使用pandas.to_datetime()函数将 pandas DataFrame 中的字符串列转换为日期时间列。

使用此函数时,您可以使用格式参数来指定日期的格式,以避免将其从字符串转换为日期时间时出现错误。

该函数使用以下基本语法:

 df[' datetime '] = pd. to_datetime (df[' my_date_column '], format=' %m%d%Y %H:%M:%S '])

以下是您可以为格式参数提供的最常见指令:

  • %m :月份为带零的数字(01, 02, … 12)
  • %d :月份中的第几天,带零的数字(01, 02, … 31)
  • %y :以世纪为数字的年份(2020、2021、2022 等)
  • %H :小时(24 小时制),用零填充的数字(00、01、…23)
  • %I :时间(12 小时制),用零填充的数字(01, 02, … 12)
  • %p :上午或下午
  • %M :以数字形式表示的分钟,以零完成 (00, 01, … 59)
  • %S :第二个以数字形式用零完成(00、01、…59)

有关指南的完整列表,请参阅此页

以下示例展示了如何在不同场景下使用to_datetime()函数中的格式参数。

示例:在 pandas.to_datetime 中指定格式

假设我们有以下 pandas DataFrame,其中包含有关零售店不同日期的总销售额的信息:

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' date ': ['10012023 4:15:30', '10042023 7:16:04', '10062023 9:25:00',
                            '10142023 15:30:50', '10152023 18:15:00'],
                   ' sales ': [100, 140, 235, 120, 250]})

#view DataFrame
print (df)

                dirty dates
0 10012023 4:15:30 100
1 10042023 7:16:04 140
2 10062023 9:25:00 235
3 10142023 15:30:50 120
4 10152023 18:15:00 250

#view data type of each column in DataFrame
print ( df.dtypes )

date object
dirty int64
dtype:object

我们可以看到日期列当前是一个字符串(即对象)列。

假设我们尝试使用pandas.to_datetime()将此列转换为日期时间:

 #attempt to convert date column to datetime format
df[' date '] = pd. to_datetime (df[' date '])

ParserError: month must be in 1..12: 10012023 4:15:30 present at position 0

我们收到错误,因为pandas.to_datetime()函数无法识别日期列当前采用的日期和时间格式。

我们还可以使用format参数来指定列的格式:

 #convert date column to datetime format
df[' date '] = pd. to_datetime (df[' date '], format=' %m%d%Y %H:%M:%S ')

#view DataFrame
print (df)

                 dirty dates
0 2023-10-01 04:15:30 100
1 2023-10-04 07:16:04 140
2 2023-10-06 09:25:00 235
3 2023-10-14 15:30:50 120
4 2023-10-15 18:15:00 250

#view updated type of each column
print ( df.dtypes )

date datetime64[ns]
dirty int64
dtype:object

我们可以看到日期列已成功转换为日期时间列,并且我们没有收到任何错误,因为我们使用格式参数来指定日期列的确切格式。

注意:您可以在此处找到 pandas to_datetime()函数的完整文档。

其他资源

以下教程解释了如何在 pandas 中执行其他常见操作:

如何在 Pandas 中创建日期范围
如何在 Pandas 中将时间戳转换为日期/时间
如何计算pandas中两个日期之间的差异

添加评论

您的电子邮箱地址不会被公开。 必填项已用*标注