【问题标题】:Convert string into dates in pandas dataframe and handle bad values将字符串转换为 pandas 数据框中的日期并处理错误值
【发布时间】:2022-01-13 04:19:07
【问题描述】:

我有一个以字符串形式存储日期的 pandas 数据框。那里有一些错误数据,当我尝试将它们转换为日期时会引发错误。

这是数据:

df['strDates']

0       19990510
1       20150303
2       20090908
3       19920200  <-- Bad Date
4       20030530

当我跑步时,

df['lastSaleDate'] = pd.to_datetime(df['lastSaleDate'], format='%Y%m%d')

我收到一个错误:

    /Applications/Anaconda/anaconda3/lib/python3.9/site-packages/pandas/core/tools/datetimes.py in _array_strptime_with_fallback(arg, name, tz, fmt, exact, errors, infer_datetime_format)
    434 
    435     try:
--> 436         result, timezones = array_strptime(arg, fmt, exact=exact, errors=errors)
    437         if "%Z" in fmt or "%z" in fmt:
    438             return _return_parsed_timezone_results(result, timezones, tz, name)

/Applications/Anaconda/anaconda3/lib/python3.9/site-packages/pandas/_libs/tslibs/strptime.pyx in pandas._libs.tslibs.strptime.array_strptime()

ValueError: time data '19920200' does not match format '%Y%m%d' (match)

【问题讨论】:

    标签: python pandas datetime


    【解决方案1】:

    只需强制并删除它即可摆脱它。 pd.to_datetime(df['lastSaleDate'],format='%Y%m%d',errors='coerce')

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-05-27
      • 1970-01-01
      • 2014-10-28
      • 2013-10-03
      • 2014-12-18
      • 1970-01-01
      • 2019-06-03
      • 2022-12-19
      相关资源
      最近更新 更多