【问题标题】:Why does to_datetime produce only missing values for a float column in pandas?为什么 to_datetime 只为熊猫中的浮点列产生缺失值?
【发布时间】: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


【解决方案1】:

最好的方法可能是完全避免floats。通过指定dtype 抢占read_table 中向数字的转换,相关列保留为objectto_datetime 按预期处理。

HT:cmets 中的 BrenBarn。

【讨论】:

    猜你喜欢
    • 2016-07-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-20
    • 2018-11-12
    • 2020-11-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多