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

如何将Pandas DataFrame带时区的datetime列转换为目标无时区时间

解决方法

要将带+05:30时区的datetime列转换为目标无时区时间,可按以下步骤操作:

步骤说明

  1. 确保列是带时区感知的datetime类型:Pandas需要先识别出原始时间的时区信息,才能进行后续转换。
  2. 调整时间偏移:目标时间是原始时间加上5小时30分钟(或等价转换到对应时区)。
  3. 移除时区信息:将调整后的时间转换为无时区的datetime类型。

代码实现

方法一:通过时区转换实现

import pandas as pd

# 示例DataFrame
df = pd.DataFrame({
    'date': [
        '2024-02-21 19:52:22+05:30',
        '2024-02-21 19:29:14+05:30',
        '2024-02-21 19:06:18+05:30'
    ]
})

# 1. 转换为带时区的datetime
df['date'] = pd.to_datetime(df['date'])
# 2. 转换到UTC+11时区(与原始时间加5.5小时效果一致)
df['date'] = df['date'].dt.tz_convert('Etc/GMT-11')
# 3. 移除时区信息
df['date'] = df['date'].dt.tz_localize(None)

方法二:直接添加时间偏移实现

如果明确知道需要添加的时长,也可以直接对时间做偏移计算:

import pandas as pd

df = pd.DataFrame({
    'date': [
        '2024-02-21 19:52:22+05:30',
        '2024-02-21 19:29:14+05:30',
        '2024-02-21 19:06:18+05:30'
    ]
})

# 1. 转换为带时区的datetime
df['date'] = pd.to_datetime(df['date'])
# 2. 添加5小时30分钟的偏移,同时移除时区
df['date'] = (df['date'] + pd.Timedelta(hours=5, minutes=30)).dt.tz_localize(None)

执行后,df['date']会得到目标无时区时间:

date
2024-02-22 01:22:22
2024-02-22 00:59:14
2024-02-22 00:36:18

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.29 17:53:22