代码之家  ›  专栏  ›  技术社区  ›  ASH

如何将字符串转换为日期,如果为零则跳过记录?

  •  0
  • ASH  · 技术社区  · 5 年前

    我尝试了下面的两行代码,但都抛出了相同的错误。

    df['MATURITY'] = df['MATURITY'].astype('datetime64[ns]')
    df['MATURITY'] = pd.to_datetime(df['MATURITY'])
    

    错误: ValueError: ('String does not contain a date:', ' ')

    在这一列中,我有一些记录是空白的,我将它们转换为0,使用如下: df = df.fillna(0)

    现在,我猜是这些零引起了我上面提到的错误。是否有方法跳过此特定字段中带有0的记录,并将所有非零转换为日期。所有这些日期现在都是字符串。谢谢。

    1 回复  |  直到 5 年前
        1
  •  0
  •   ldtcoop    5 年前

    看起来像是 pandas to_datetime function 接受 errors 参数,该参数允许它以不同的方式响应无效的日期格式。它默认会引发错误,但也可以设置为 'ignore' 如果输入无效,它将返回输入,例如0。试试这个:

    pd.to_datetime(df['MATURITY'], errors='coerce')