使用Pandas Timestamp传入datetime.fromtimestamp报错的原因及用法咨询
错误原因与修正方案
错误本质
datetime.datetime.fromtimestamp() 要求传入整数类型的Unix时间戳(即从1970-01-01 UTC起算的秒数),但你传入的是Pandas的Timestamp对象,类型不匹配,所以触发TypeError。
你的理解误区
混淆了Pandas Timestamp对象和Unix时间戳整数的概念:Timestamp是Pandas封装的时间对象,自带很多时间处理方法,但它本身不是整数类型,不能直接被Python标准库的datetime方法接受。
两种修正方法
方法一:获取Unix时间戳后转换
调用Timestamp的timestamp()方法拿到对应的Unix时间戳(早于1970年的时间会返回负数),再传给fromtimestamp():
import pandas as pd import datetime ts = pd.Timestamp("1900-01-01") dt = datetime.datetime.fromtimestamp(ts.timestamp())
方法二:直接转成datetime对象(推荐)
用Timestamp的to_pydatetime()方法直接转换为Python标准库的datetime对象,步骤更简洁,也避免了Unix纪元前时间的兼容性问题:
import pandas as pd import datetime ts = pd.Timestamp("1900-01-01") dt = ts.to_pydatetime()
内容的提问来源于stack exchange,提问作者Andrew
相关产品推荐
相关产品推荐

