python - datetime.fromtimestamp 类型错误
问题描述
我正在尝试将纪元(unixtime)转换为日期时间格式(UTC)并拥有这样做的代码;
from datetime import datetime, timezone
vmmR817['datetime_new_utc']=datetime.fromtimestamp(vmmR817['epoch'],timezone.utc).strftime('%Y-%m-%d %H:%M:%S')
datetime.fromtimestamp(1563915600,timezone.utc).strftime('%Y-%m-%d %H:%M:%S')
该代码适用于单个时代(1563915600),但不适用于数据帧的完整系列(vmmR817 ['epoch'])。它返回以下错误
TypeError:无法将系列转换为
Df 看起来像:
时间序列从:
datetime.fromtimestamp(1525039200,timezone.utc).strftime('%Y-%m-%d %H:%M:%S')
Out[93]: '2018-04-29 22:00:00'
到
datetime.fromtimestamp(1563915600,timezone.utc).strftime('%Y-%m-%d %H:%M:%S')
Out[92]: '2019-07-23 21:00:00'
有什么建议么?
提前致谢!
解决方案
datetime.fromtimestamp
期望一个标量输入;但是您正在传递一个熊猫系列(数据框中的一列)。那是行不通的。只需使用pd.to_datetime
转换整个列:
import pandas as pd
# example df:
df = pd.DataFrame({'epoch': [1563915600]})
# convert the epoch column:
df['epoch'] = pd.to_datetime(df['epoch'], unit='s')
# 0 2019-07-23 21:00:00
# Name: t, dtype: datetime64[ns]