在python中将非填充字符串转换为日期(以给定格式)

2024-04-26 06:54:43 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试将非填充字符串转换为python中的日期,并出现以下错误:

e_dataframe['Modified_Date'] =  pd.to_datetime(e_dataframe['Modified_Date'], format='%d/%m/%y %I:%M %p')

ValueError: time data '1/08/2018 4:41 PM' does not match format '%d/%m/%y %I:%M %p' (match)

格式类似,但仍有错误。你知道吗


Tags: to字符串formatdataframedatadatetimedatetime
1条回答
网友
1楼 · 发布于 2024-04-26 06:54:43

%y用两位数匹配年份,省略世纪。您的输入有4位数的年份,因此需要使用%Y

'%d/%m/%Y %I:%M %p'

如果有疑问,请将datetime.strptime()与输入的子字符串一起使用,这样您就可以看到哪些部分工作,哪些部分失败:

>>> import datetime
>>> datetime.datetime.strptime('1', '%d')
datetime.datetime(1900, 1, 1, 0, 0)
>>> datetime.datetime.strptime('1/08', '%d/%m')
datetime.datetime(1900, 8, 1, 0, 0)
>>> datetime.datetime.strptime('1/08/2018', '%d/%m/%y')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/Users/mj/Development/Library/buildout.python/parts/opt/lib/python3.7/_strptime.py", line 577, in _strptime_datetime
    tt, fraction, gmtoff_fraction = _strptime(data_string, format)
  File "/Users/mj/Development/Library/buildout.python/parts/opt/lib/python3.7/_strptime.py", line 362, in _strptime
    data_string[found.end():])
ValueError: unconverted data remains: 18

这个错误表明%y只处理了一年中的20部分,告诉我们它不是2018输入的正确占位符。你知道吗

相关问题 更多 >