如何移除pandas列中的时区信息并解决ParserError格式报错
pandas列移除时区信息报错排查及解决
报错根因
- 输入的时间字符串末尾携带
Malay Peninsula Standard Time文本类时区标识,pandas默认时间解析规则无法识别该格式,触发ParserError - 代码中strftime格式符语法错误,
H%:M%:S%的百分号位置倒置,正确写法为%H:%M:%S
解决代码
方案1:解析后输出为指定格式的字符串
import pandas as pd # 先提取前半段标准日期时间内容,忽略后段时区文本 df['created_at'] = pd.to_datetime(df['created_at'].str.extract(r'(\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2})', expand=False)) # 按要求格式化输出 df['created_at'] = df['created_at'].dt.strftime('%Y-%m-%d %H:%M:%S')
方案2:保留datetime类型,仅移除时区属性
如果后续需要对该列做时间计算,不需要转成字符串,可以直接清空时区属性:
import pandas as pd df['created_at'] = pd.to_datetime(df['created_at'].str.extract(r'(\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2})', expand=False)).dt.tz_localize(None)
内容的提问来源于stack exchange,提问作者kungfupyndas
相关产品推荐
相关产品推荐

