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

如何用Pandas将DataFrame时区化时间转为加尔各答本地时间?

问题:如何移除Pandas Datetime列的时区偏移,显示加尔各答本地时间

我是Python和Pandas库的新手,在这个问题上完全陷入困境。我的DataFrame中有一个'timestamp'列(数据类型为datetime64[ns, 'Asia/Kolkata']),该列原本是int64格式的毫秒时间戳(如1748174400000、1748188800000等)。

我先用以下命令将其转为UTC感知型Datetime列:

df['timestamp'] = pd.to_datetime(df['timestamp'], unit='ms', utc = True)

输出结果:
(2025-05-25 12:00:00+00:00, 2025-05-25 16:00:00+00:00 etc..)

再用以下命令转换为Asia/Kolkata时区:

df['timestamp'] = df['timestamp'].dt.tz_convert('Asia/Kolkata')

输出结果:
(2025-05-25 17:30:00+05:30, 2025-05-25 21:30:00+05:30 etc..)

我希望将该列转为加尔各答实际本地日期时间,而非带+05:30偏移的格式,请问该如何实现?


解决方案

方案1:移除时区信息,保留datetime类型

如果需要后续继续对该列进行日期时间运算,推荐这种方式。使用tz_localize(None)可以移除时区偏移,得到不带时区的本地datetime值:

df['timestamp'] = df['timestamp'].dt.tz_localize(None)

执行后,列的数据类型变为datetime64[ns],显示结果为:
(2025-05-25 17:30:00, 2025-05-25 21:30:00 etc..)

方案2:转为字符串格式的本地时间

如果仅用于展示,不需要后续datetime运算,可以直接格式化为字符串:

df['timestamp_local'] = df['timestamp'].dt.strftime('%Y-%m-%d %H:%M:%S')

这会生成一个新的字符串列,内容为无偏移的加尔各答本地时间格式。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.12 23:28:19