Pandas转换timestamp列时报strftime不适用str对象错误如何解决
报错原因
你的timestamp列当前存储的是字符串类型数据,而strftime是datetime/date类型对象的专属方法,不能直接作用于字符串,因此触发类型错误。
解决方案
优先使用Pandas内置的矢量化方法,相比逐行apply处理性能更高,代码更简洁:
- 如果需要保留datetime类型(方便后续做时间运算、筛选等操作),只需将列转为Pandas datetime类型即可,默认会自动补全时分秒为
00:00:00:
df['timestamp'] = pd.to_datetime(df['timestamp'])
- 如果需要最终输出为指定格式的字符串:
df['timestamp'] = pd.to_datetime(df['timestamp']).dt.strftime('%Y-%m-%d %H:%M:%S')
如果一定要沿用apply的写法,需要先将字符串解析为datetime对象再做格式化:
import datetime as dt df['timestamp'] = df['timestamp'].apply(lambda x: dt.datetime.strftime(dt.datetime.strptime(x, '%Y-%m-%d'), '%Y-%m-%d %H:%M:%S'))
内容的提问来源于stack exchange,提问作者YanRemes
相关产品推荐
相关产品推荐

