我有一个pandas数据框,其中有一列类型为int64,但这一列表示日期,例如20180501。我想将此列转换为datetime类型,但我使用以下代码时会返回错误消息:
df['new_date'] = pd.to_datetime(df['old_date'].astype('str'), format = '%y%m%d')
我收到了以下错误信息。
ValueError: unconverted data remains: 0501
我该如何修复我的代码?
Y
。参考Python的strftime指令获取完整信息。df = pd.DataFrame({'old_date': [20180501, 20181230, 20181001]})
df['new_date'] = pd.to_datetime(df['old_date'].astype(str), format='%Y%m%d')
print(df)
old_date new_date
0 20180501 2018-05-01
1 20181230 2018-12-30
2 20181001 2018-10-01
问题可能是由于数据框架中某些地方存在格式错误而引起的。
您可以尝试设置参数errors="coerce",以避免转换这些条目并将它们设置为NaT。
https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.to_datetime.html