Python Pandas读取CSV文件时如何将指定列读取或转换为日期格式
pandas日期列转换失败解决方案
- 方案1:读取文件时直接指定日期格式完成解析
直接在read_csv参数中指定匹配格式,无需二次转换:hs = pd.read_csv('history.csv', parse_dates=['Month'], date_format='%m/%d/%Y') - 方案2:读取后手动指定格式转换
针对已经读取到内存的数据,显式指定格式避免自动识别出错,同时兼容脏数据场景:# 格式不匹配的内容会转为空值NaT,不会抛出错误 hs['Month'] = pd.to_datetime(hs['Month'], format='%m/%d/%Y', errors='coerce') - 异常排查方法
如果转换后存在大量NaT,说明原始数据有不符合%m/%d/%Y格式的脏数据,可执行以下命令筛选出异常行:
修正异常值后重新执行转换即可。# 输出所有不符合月/日/年格式的Month值 print(hs[~hs['Month'].str.match(r'^\d{1,2}/\d{1,2}/\d{4}$')]['Month'])
内容的提问来源于stack exchange,提问作者Ashish
相关产品推荐
相关产品推荐

