首页 > 解决方案 > 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'

有什么建议么?

提前致谢!

标签: pythonpandasdatetimeutcepoch

解决方案


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]

推荐阅读