【发布时间】:2017-12-16 16:02:51
【问题描述】:
今天遇到一个错误,涉及导入带日期的 CSV 文件。该文件存在已知质量问题,在这种情况下,由于数据输入错误,其中一项为“3/30/3013”。
阅读有关 OutOfBoundsDatetime 错误的其他条目,日期时间的上限在 2262 年 4 月 11 日达到最大值。建议的解决方案是修复日期的格式。在我的情况下,日期格式是正确的,但数据是错误的。
应用 numpy 逻辑:
df['Contract_Signed_Date'] = np.where(df['Contract_Signed_Date']>'12/16/2017',
df['Alt_Date'],df['Contract_Signed_Date'])
基本上,如果文件的“合同签署日期”大于今天(即 2017 年 12 月 16 日),我想改用 Alt_Date 列。它似乎可以工作,除非它在输入 3013 年时出错。什么是解决越界错误的好 Pythonic 方法?
【问题讨论】:
-
Contract_Signed_Date 在数据框中可以作为字符串使用吗?
-
Bill,是的,我可以这样做:df['Contract_Signed_Date'].astype(str) 但是 df.Contract_Signed_Date.dt.strftime('%Y/%m/%d') 给我一个错误“只能将 .dt 访问器与 datetimelike 值一起使用。”使用 date_time 让我回到了界限。
标签: python-3.x numpy datetime indexoutofboundsexception