字符串格式化的时候报错ValueError: NaTType does not support strftime,如何解决?

悬赏5元,看看我吧
我的字符串都是这样子的:2022/2/13 19:25
我想把它转成时间格式,并且只保留2022/2/13变为2022-2-13
我写的语句为:
df['updateTime'] = pd.to_datetime(df['updateTime'], format="%Y-%m-%d", errors='coerce')
df['updateTime'] = df['updateTime'].apply(lambda x: x.strftime('%Y-%m-%d'))】
报错为:
ValueError: NaTType does not support strftime

如果第一句不加errors=‘coerce’会报错:
ValueError: time data updateTime doesn't match format specified

请问该怎么改啊,我看了我的数据updateTime里没什么错啊

我使用你的代码,不会报错啊

img


是不是你的原始数据中有空数据或者不是你写的格式的数据啊

to_datetime是指将字符串按照指定的格式转换成日期时间,这个格式必须和原字符串匹配,
很明显你这里设定的格式只有年月日,和原字符串是不匹配的,所以就报错了。
一般有两种处理方式,

  1. 既然你原字符串是年月日时分秒,那么转换成日期的格式化参数也应该是年月日时分秒,在获得一个日期时间类型的值后,再对其进行反向的格式化,转换成年月日的字符串
  2. 直接用空格作为字符串截断的位置