pandas列时间戳转成本地时间

excel里面有一列Column4里面是时间戳(到秒), 要求转换成北京时间格式

要注意的是pd.to_datetime(c4, unit=’s’) 之后得到的时间是UTC时间, 直接写入excel会跟真正的时间差8个小时, 可以结合.dt.tz_localize(“UTC”) 和 .dt.tz_convert(“Asia/Shanghai”) 来实现得到北京时间

import pandas as pd

df = pd.read_excel("工作簿2.xlsx", sheet_name="Sheet1")
c4 = df["Column4"]
new_c4 = pd.to_datetime(c4, unit='s').dt.tz_localize('UTC').dt.tz_convert("Asia/Shanghai")
df["Column4"] = new_c4
df.to_excel("工作簿3.xlsx", index=False)