from pandas.tseries.offsets import BDay
from datetime import datetime
today = datetime.today()
todayminus1 = (today - BDay(1))
print("type(todayminus1) =", type(todayminus1))
todayminus1 = datetime.fromtimestamp(todayminus1).strftime('%d-%m-%y')
print("todayminus1 =", todayminus1)
error: TypeError: an integer is required (got type Timestamp)
我无法解决这个问题。有什么想法吗?
尝试转换为日期时间时似乎出错
答案 0 :(得分:0)
classmethod datetime.fromtimestamp(timestamp, tz=None) 返回 POSIX时间戳对应的本地日期和时间,如 由 time.time() 返回。如果可选参数 tz 是否为 None 指定,时间戳被转换为平台的本地日期和 时间,并且返回的日期时间对象是幼稚的。
您需要使用 todayminus1.timestamp()
from pandas.tseries.offsets import BDay
from datetime import datetime
today = datetime.today()
todayminus1 = (today - BDay(1))
print("type(todayminus1) =", type(todayminus1))
todayminus1 = datetime.fromtimestamp(todayminus1.timestamp()).strftime('%d-%m-%y')
print("todayminus1 =", todayminus1)
输出:
type(todayminus1) = <class 'pandas._libs.tslibs.timestamps.Timestamp'>
todayminus1 = 23-06-21
另外,您不应该在大熊猫和日期时间之间混用。因此,您还可以在行中添加 .to_pydatetime()
:
todayminus1 = (today - BDay(1)).to_pydatetime()
将所有内容保留为 datetime
。