我想把一个字符串从 Dataframe 转换成日期时间。
dfx = df.ix[:,'a'] dfx = pd.to_datetime(dfx)
但它给出了以下错误:ValueError:日超出月的范围有人能帮忙吗?
z9smfwbn1#
如果日期时间的格式为30-01-2016,可能有助于将参数dayfirst=True添加到to_datetime:
30-01-2016
dayfirst=True
to_datetime
dfx = df.ix[:,'a'] dfx = pd.to_datetime(dfx, dayfirst=True)
更通用的是使用参数format和errors='coerce'来替换其他format到NaN的值:
format
errors='coerce'
NaN
dfx = '30-01-2016' dfx = pd.to_datetime(dfx, format='%d-%m-%Y', errors='coerce') print (dfx) 2016-01-30 00:00:00
样品:
dfx = pd.Series(['30-01-2016', '15-09-2015', '40-09-2016']) print (dfx) 0 30-01-2016 1 15-09-2015 2 40-09-2016 dtype: object dfx = pd.to_datetime(dfx, format='%d-%m-%Y', errors='coerce') print (dfx) 0 2016-01-30 1 2015-09-15 2 NaT dtype: datetime64[ns]
如果格式为标准格式(例如01-30-2016或01-30-2016),则仅添加errors='coerce':
01-30-2016
dfx = pd.Series(['01-30-2016', '09-15-2015', '09-40-2016']) print (dfx) 0 01-30-2016 1 09-15-2015 2 09-40-2016 dtype: object dfx = pd.to_datetime(dfx, errors='coerce') print (dfx) 0 2016-01-30 1 2015-09-15 2 NaT dtype: datetime64[ns]
wyyhbhjk2#
就我而言
year = 2023 month = 2 date = datetime.date(year, month, 30)
我得到了这个错误,因为二月有29或28天在它。也许这一点帮助别人
2条答案
按热度按时间z9smfwbn1#
如果日期时间的格式为
30-01-2016
,可能有助于将参数dayfirst=True
添加到to_datetime
:更通用的是使用参数
format
和errors='coerce'
来替换其他format
到NaN
的值:样品:
如果格式为标准格式(例如
01-30-2016
或01-30-2016
),则仅添加errors='coerce'
:wyyhbhjk2#
就我而言
我得到了这个错误,因为二月有29或28天在它。也许这一点帮助别人