如何移除时间列中的+0600时区转换?遇dt访问器报错
解决方法
报错的核心原因:你的event_time_selected_timezone列不是datetime类型(大概率是字符串),所以没法使用.dt访问器。按以下步骤处理即可:
先将字符串列转换为带时区的datetime类型
假设你的时间字符串格式类似YYYY-MM-DD HH:MM:SS+0600,用pd.to_datetime()完成转换,若格式固定也可指定format参数确保识别准确:# 自动识别格式(通用场景) clean['event_time_selected_timezone'] = pd.to_datetime(clean['event_time_selected_timezone'], utc=True) # 格式明确时指定format(更稳妥) clean['event_time_selected_timezone'] = pd.to_datetime(clean['event_time_selected_timezone'], format='%Y-%m-%d %H:%M:%S%z', utc=True)移除时区信息
转换成功后,再执行你原本的代码移除时区:clean['event_time_selected_timezone'] = clean['event_time_selected_timezone'].dt.tz_localize(None)
如果你的时间格式比较特殊,可先查看列内的字符串样本,调整format参数的匹配规则即可。
内容的提问来源于stack exchange,提问作者YanRemes
相关产品推荐
相关产品推荐

