如何将DataFrame中的Epoch时间转换为GMT+3时区的时间戳?
将DataFrame中的Epoch字符串转换为GMT+3时区的时间戳
解决步骤
你的DataFrame里的Epoch时间是以字符串格式存储的,需要先转换为数值类型,再转成带时区的时间戳,具体操作分两步:
转换Epoch字符串为整数类型
Pandas的pd.to_datetime无法直接处理字符串格式的Epoch,必须先把目标列转成整数。生成UTC时间戳并转换至GMT+3时区
先基于秒级Epoch生成UTC基准的时间戳,再通过时区转换得到GMT+3的时间。
完整代码示例
import pandas as pd # 初始化示例DataFrame df = pd.DataFrame({ 'data1': ['1661191956', '1661191956', '1661191956'], 'data2': ['1661191956', '1661191956', '1661191956'], 'data3': ['1661191956', '1661191956', '1661191956'] }) # 指定需要处理的Epoch列 epoch_columns = ['data1', 'data2', 'data3'] # 1. 转换字符串列为整数类型 df[epoch_columns] = df[epoch_columns].astype(int) # 2. 批量转换为GMT+3时区的时间戳 df[epoch_columns] = df[epoch_columns].apply( lambda col: pd.to_datetime(col, unit='s', utc=True).dt.tz_convert('GMT+3') ) # 查看处理结果 print(df)
关键细节说明
unit='s':明确Epoch是秒级(如果是毫秒级Epoch,替换为unit='ms')utc=True:确保生成的时间戳基于UTC基准,避免后续时区转换出现偏差tz_convert('GMT+3'):直接转换至GMT+3时区,也可以使用对应时区的具体标识符(如'Europe/Moscow',需确认该时区当前为GMT+3)
内容的提问来源于stack exchange,提问作者Mostafa Mohamed
相关产品推荐
相关产品推荐

