You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

移除Pandas DataFrame中timestamp列时区信息报错解决

解决移除Pandas datetime列时区信息的报错问题

先看你的数据和报错场景:

加载数据的代码:

df = pd.read_csv('test.csv', parse_dates=['timestamp'])
df

输出结果:

user         timestamp           speed
0   2   2016-04-01 01:06:26+01:00   9.76
1   2   2016-04-01 01:06:26+01:00   5.27
2   2   2016-04-01 01:06:26+01:00   8.12
3   2   2016-04-01 01:07:53+01:00   8.81

你执行df['timestamp'].tz_convert(None)时触发错误:

TypeError: index is not a valid DatetimeIndex or PeriodIndex

错误原因

tz_convert是DatetimeIndex专属方法,直接对Series调用会报错,必须通过.dt访问器来调用datetime类型Series的专属方法。

正确解决方法

要移除timestamp列的时区信息,有两种实用方式:

  1. 使用dt.tz_localize(None)(推荐,明确移除时区标记)
df['timestamp'] = df['timestamp'].dt.tz_localize(None)
  1. 使用dt.tz_convert(None)(同样有效,本质是转换为无时区的naive datetime)
df['timestamp'] = df['timestamp'].dt.tz_convert(None)

执行后,timestamp列会变为不带时区的datetime格式,例如2016-04-01 01:06:26。

内容的提问来源于stack exchange,提问作者Amina Umar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 23:30:55