【发布时间】:2020-11-03 19:18:39
【问题描述】:
我在使用 pandas.to_datetime 将 jalali 日期字符串转换为 python 日期时间对象 时遇到了一些问题 例如,当我运行这个简单的代码时:
print(pd.to_datetime('1399/05/02',format='%Y/%m/%d'))
我收到了这个错误:
TypeError Traceback (most recent call last)
~\anaconda3\envs\tf2\lib\site-packages\pandas\core\arrays\datetimes.py in objects_to_datetime64ns(data, dayfirst, yearfirst, utc, errors, require_iso8601, allow_object)
1857 try:
-> 1858 values, tz_parsed = conversion.datetime_to_datetime64(data)
1859 # If tzaware, these values represent unix timestamps, so we
pandas\_libs\tslibs\conversion.pyx in pandas._libs.tslibs.conversion.datetime_to_datetime64()
TypeError: Unrecognized value type:
During handling of the above exception, another exception occurred:
OutOfBoundsDatetime Traceback (most recent call last)
in
1 #dbs.Irdate = pd.to_datetime(dbs.Irdate,format='%Y/%m/%d',yearfirst = True)
----> 2 print(pd.to_datetime('1399/05/02',format='%Y/%m/%d'))
~\anaconda3\envs\tf2\lib\site-packages\pandas\core\tools\datetimes.py in to_datetime(arg, errors, dayfirst, yearfirst, utc, format, exact, unit, infer_datetime_format, origin, cache)
754 result = convert_listlike(arg, format)
755 else:
--> 756 result = convert_listlike(np.array([arg]), format)[0]
757
758 return result
~\anaconda3\envs\tf2\lib\site-packages\pandas\core\tools\datetimes.py in _convert_listlike_datetimes(arg, format, name, tz, unit, errors, infer_datetime_format, dayfirst, yearfirst, exact)
445 errors=errors,
446 require_iso8601=require_iso8601,
--> 447 allow_object=True,
448 )
449
~\anaconda3\envs\tf2\lib\site-packages\pandas\core\arrays\datetimes.py in objects_to_datetime64ns(data, dayfirst, yearfirst, utc, errors, require_iso8601, allow_object)
1861 return values.view("i8"), tz_parsed
1862 except (ValueError, TypeError):
-> 1863 raise e
1864
1865 if tz_parsed is not None:
~\anaconda3\envs\tf2\lib\site-packages\pandas\core\arrays\datetimes.py in objects_to_datetime64ns(data, dayfirst, yearfirst, utc, errors, require_iso8601, allow_object)
1852 dayfirst=dayfirst,
1853 yearfirst=yearfirst,
-> 1854 require_iso8601=require_iso8601,
1855 )
1856 except ValueError as e:
pandas\_libs\tslib.pyx in pandas._libs.tslib.array_to_datetime()
pandas\_libs\tslib.pyx in pandas._libs.tslib.array_to_datetime()
pandas\_libs\tslib.pyx in pandas._libs.tslib.array_to_datetime()
pandas\_libs\tslib.pyx in pandas._libs.tslib.array_to_datetime()
pandas\_libs\tslibs\np_datetime.pyx in pandas._libs.tslibs.np_datetime.check_dts_bounds()
**OutOfBoundsDatetime: Out of bounds nanosecond timestamp: 1399-05-02 00:00:00**
所以 我使用此参数 errors='ignore' 来修复错误,但结果不可接受 例如:
print(pd.to_datetime('1399/05/02',format='%Y/%m/%d', errors='ignore'))
结果是:1399/05/02 所以你看不到任何变化 我想要这样的东西 1399-05-02 python 日期时间对象 请帮帮我
【问题讨论】:
标签: python pandas dataframe datetime