我很困惑熊猫0.18.0。在我输入的csv数据中,一个字段应该包含日期为YYYYMMDD的字符串,但是有些行有这个缺失或错误格式。我想用可能的日期将此列表示为日期时间,并且错过哪里不是。为什么to_datetime只产生pandas中浮点列的缺失值?
我尝试了几个选项,最让我感觉不到的是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
@BrenBarn看到编辑,谢谢。 –