我使用pd.read_csv
从外部数据源读取csv文件,如下所示:
pd.read_csv(
BytesIO(raw_data),
parse_dates=['dates'],
date_parser=np.datetime64,
)
但是,在发送的csv中,有一个格式错误的日期,导致以下错误:
^{pr2}$这会导致整个应用程序崩溃。当然,我可以用try/except来处理这个问题,但是这样我就会丢失这个csv中的所有其他数据。我需要熊猫来保存和分析其他数据。在
我无法预测这些数据(每天都在变化)何时何地会有格式错误的日期。有没有办法让pd.read_csv
只跳过日期错误的行,但仍然解析csv中的所有其他行?在
这里有另一种方法使用pd.convert_对象()方法:
使用内置的
pd.to_datetime
,它将非日期类型的数据转换为NaT
现在您可以使用标准的nan/null检查筛选出无效的行
^{pr2}$^{} 需要ISO8601 formatted字符串才能正常工作。好消息是您可以在自己的函数中包装
np.datetime64
,并将其用作date_parser
:我经常发现,像^{} 这样更灵活的日期分析器比
^{pr2}$np.datetime64
工作得更好,甚至可能不需要额外的函数:相关问题 更多 >
编程相关推荐