【发布时间】:2016-07-13 13:32:33
【问题描述】:
我对 pandas 0.18.0 中的某些内容感到困惑。在我的输入 csv 数据中,一个字段应该包含日期为 YYYYMMDD 字符串,但有些行缺少或格式错误。我想将此列表示为日期时间,在可能的情况下使用日期,在没有的情况下缺失。
我尝试了几个选项,最让我受益的是在阅读表格时没有使用parse_dates(使用read_table),而是使用pandas.to_datetime(DataFrame['Seriesname'], errors='coerce',format='%Y%m%d') 强制转换。这对于数字不能代表日期的拼写错误(认为“20100231”,首先导入为int64 的列)或字符串根本不代表数字(认为“2o1oo228”,导入时的列object )。
当列仅包含数字但一个字段为空时,此过程不可靠。然后read_table 将整个列导入为float64(不是int64,它在numpy 中没有缺失值),上面的转换会产生所有缺失,即使对于数据有意义的行也是如此。
有没有办法解决这个问题?
【问题讨论】:
-
“没有转换”是什么意思?您不能只设置转换选项以将该列保留为字符串吗?
-
@BrenBarn 查看编辑,谢谢。
标签: python datetime numpy pandas types