首页 > 解决方案 > Pandas to_datetime 断言错误正在抛出错误

问题描述

将字符串格式的日期转换为日期时间格式时,我的 python 抛出断言错误。这在“read_csv”中用作转换器。

例如,我的数据如下所示:"01-SEP-18 01.30.30.000000 AM"

据我所知,格式应该如下。这不是我的确切代码,但我包含了字符串而不是表达我的转换器。我知道 to_datetime 相对聪明,并且尝试不使用格式只是为了收到类似/相同的错误。

pn.to_datetime('01-SEP-18 01.30.30.000000 AM','%d-%b-%y %I.%M.%S.%f %p')
pn.to_datetime('01-SEP-18 01.30.30.000000 AM')


Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:\ProgramData\Anaconda3\lib\site-packages\pandas\core\tools\datetimes.py", line 469, in to_datetime
    result = _convert_listlike(np.array([arg]), box, format)[0]
  File "C:\ProgramData\Anaconda3\lib\site-packages\pandas\core\tools\datetimes.py", line 368, in _convert_listlike
    require_iso8601=require_iso8601
  File "pandas\_libs\tslib.pyx", line 492, in pandas._libs.tslib.array_to_datetime
  File "pandas\_libs\tslib.pyx", line 513, in pandas._libs.tslib.array_to_datetime

AssertionError

标签: pythonpandasdatetimeformatassertion

解决方案


你就在那里 - 你传递的格式不是参数,而是关键字参数,因此需要将其指定为格式。这应该会得到您需要的结果(假设 pandas 被导入为 pn):

pn.to_datetime('01-SEP-18 01.30.30.000000 AM', format='%d-%b-%y %I.%M.%S.%f %p')

推荐阅读