pandas DataFrame epoch时间戳转可读日期格式报错问题咨询
错误原因
- 报错的核心是
dt列的数据类型为字符串(str),而datetime.fromtimestamp()方法要求传入整数类型的epoch时间戳,类型不匹配导致触发错误。 - 你可以先执行
print(weather_data['dt'].dtype)确认列类型,若输出为object即可验证该问题,一般是从JSON加载数据时自动识别类型错误导致的。
解决方案
有两种常用实现方式:
方式1:调整现有lambda逻辑,新增类型转换步骤
先把传入的参数转为整数再处理:
from datetime import datetime weather_data['dt'] = weather_data['dt'].apply(lambda x: datetime.fromtimestamp(int(x)).strftime("%m/%d/%Y %H:%M:%S"))
方式2:使用pandas内置时间处理方法(处理大数据集时效率更高,更推荐)
import pandas as pd # astype(int)先转列类型为整数,unit='s'指定时间戳单位为秒 weather_data['dt'] = pd.to_datetime(weather_data['dt'].astype(int), unit='s').dt.strftime("%m/%d/%Y %H:%M:%S")
补充注意:你原代码中的strftime格式为
%m-%d-%Y,和你需求的%m/%d/%Y %H:%M:%S不一致,上述代码已经调整为你需要的目标日期格式。
内容的提问来源于stack exchange,提问作者aerioeus
相关产品推荐
相关产品推荐

