如何在pandas中将int64转换为日期时间

7

我有一个pandas数据框,其中有一列类型为int64,但这一列表示日期,例如20180501。我想将此列转换为datetime类型,但我使用以下代码时会返回错误消息:

 df['new_date'] = pd.to_datetime(df['old_date'].astype('str'), format = '%y%m%d')

我收到了以下错误信息。
ValueError: unconverted data remains: 0501

我该如何修复我的代码?

2个回答

10
你需要大写的 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

1
不幸的是,无论是否使用“.astype(str)”都没有效果(静默失败)... 当尝试将日期从“%Y-%m-%d”转换为“%d /%m /%Y”时。 - mirekphd
我遇到错误ValueError: 未转换的数据仍然存在:1 - Duffer

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接