【发布时间】:2020-02-29 19:49:21
【问题描述】:
我读入了一个包含日期的 CSV 文件。有些日期的格式可能错误,我想找到那些。通过以下方法,我会预计第二行是NaT。但是无论我设置infer_datetime_format还是exact,pandas似乎都忽略了指定的格式。
import pandas as pd
from io import StringIO
DATA = StringIO("""date
2019 10 07
2018 10
""")
df = pd.read_csv(DATA)
df['date'] = pd.to_datetime(df['date'], format="%Y %m %d", errors='coerce', exact=True)
结果
date
0 2019-10-07
1 2018-10-01
pandas.to_datetime 文档引用了strftime() and strptime() Behavior,但是当我使用纯 Python 对其进行测试时,它可以工作:
datetime.datetime.strptime(' 2018 10', '%Y %m %d')
我得到期望值错误:
ValueError: time data ' 2018 10' does not match format '%Y %m %d'
我错过了什么?
仅供参考:这个问题pandas to_datetime not working 似乎是相关的,但有所不同,现在似乎已修复。它适用于我的熊猫版本 0.25.2。
【问题讨论】: