为什么 pd.to_datetime 转换失败?
why does pd.to_datetime fail to convert?
我有一个对象列,其值是日期。从 csv 读取后,我手动放置了 2016-08-31 而不是 NaN。
close_date
0 1948-06-01 00:00:00
1 2016-08-31 00:00:00
2 2016-08-31 00:00:00
3 1947-07-01 00:00:00
4 1967-05-31 00:00:00
运行 df['close_date'] = pd.to_datetime(df['close_date'])
结果
TypeError: invalid string coercion to datetime
添加 coerce=True
参数导致:
TypeError: to_datetime() got an unexpected keyword argument 'coerce'
此外,即使我调用列 'close_date',dataframe 中的所有列,一些 int64、float64 和 datetime64[ns],更改为 dtype 对象。
我做错了什么?
您需要 errors='coerce'
参数将一些不可解析的值转换为 NaT
:
df['close_date'] = pd.to_datetime(df['close_date'], errors='coerce')
print (df)
close_date
0 1948-06-01
1 2016-08-31
2 2016-08-31
3 1947-07-01
4 1967-05-31
print (df['close_date'].dtypes)
datetime64[ns]
但如果有一些混合值 - 带日期时间的数字首先转换为 str
:
df['close_date'] = pd.to_datetime(df['close_date'].astype(str), errors='coerce')
我有一个对象列,其值是日期。从 csv 读取后,我手动放置了 2016-08-31 而不是 NaN。
close_date
0 1948-06-01 00:00:00
1 2016-08-31 00:00:00
2 2016-08-31 00:00:00
3 1947-07-01 00:00:00
4 1967-05-31 00:00:00
运行 df['close_date'] = pd.to_datetime(df['close_date'])
结果
TypeError: invalid string coercion to datetime
添加 coerce=True
参数导致:
TypeError: to_datetime() got an unexpected keyword argument 'coerce'
此外,即使我调用列 'close_date',dataframe 中的所有列,一些 int64、float64 和 datetime64[ns],更改为 dtype 对象。
我做错了什么?
您需要 errors='coerce'
参数将一些不可解析的值转换为 NaT
:
df['close_date'] = pd.to_datetime(df['close_date'], errors='coerce')
print (df)
close_date
0 1948-06-01
1 2016-08-31
2 2016-08-31
3 1947-07-01
4 1967-05-31
print (df['close_date'].dtypes)
datetime64[ns]
但如果有一些混合值 - 带日期时间的数字首先转换为 str
:
df['close_date'] = pd.to_datetime(df['close_date'].astype(str), errors='coerce')