strftime' 需要 'datetime.date' 但收到 'datetime.time'
strftime' requires a 'datetime.date' but received a 'datetime.time'
我正在尝试获取在我的数据集中唯一的所有 TimeFrame
的列表。
我的数据集有很多测量值,根据我正在研究的年份,它们有不同的时间测量值。例如,2021 年每 15 分钟进行一次测量,而 2020 年则是每 20 分钟一次。
因为我想比较忽略日期的测量,只关心时间,所以我试图获取数据集中的时间帧列表。
这是我目前所拥有的:
Data['Date | Hour'] = pd.to_datetime(Data['Date'], format='%Y-%m-%d %H:%M')
Data = Data.set_index((Data['Date | Hour']))
Data['Hour']=Data.index.time
Data['Date']=Data.index.date
TimeFrames=[]
V=Data['Hour'].unique()
a=np.arange(0,len(V))
for i in a:
TimeFrames.append(datetime.strftime(V[i],'%H:%M:%S'))
结果应该是这样的:
TimeFrames=['00:00:00','00:15:00','00:30:00','00:45:00' ...
但是,结果是:
TypeError: descriptor 'strftime' requires a 'datetime.date' object but received a 'datetime.time'
我试着用日期 (V=Data[‘Date’].unique()
) 来做,结果产生了一个日期列表……
我在想,也许我可以在 V
、运行 循环中添加一个随机日期,并在获取列表后从所有字符串中删除日期,从而得到我想要的列表,但那将是我最后的选择..有什么想法吗??
请注意,strftime
可用作 classes datetime.datetime
、datetime.date
和 datetime.time
的方法(另请参阅 documentation on datetime module ), 而你在这里处理的是一个 datetime.time
对象。
因此,将最后一行更改为
之类的内容应该没问题
time.strftime(V[i],'%H:%M:%S')
调用三种方法中正确的一种(当然你必须使用 from datetime import time
导入 class)。
为了使其更短,您可以直接遍历数组(不需要 V
和 a
):
for v in Data['Hour'].unique():
TimeFrames.append(time.strftime(v,'%H:%M:%S'))
我正在尝试获取在我的数据集中唯一的所有 TimeFrame
的列表。
我的数据集有很多测量值,根据我正在研究的年份,它们有不同的时间测量值。例如,2021 年每 15 分钟进行一次测量,而 2020 年则是每 20 分钟一次。
因为我想比较忽略日期的测量,只关心时间,所以我试图获取数据集中的时间帧列表。
这是我目前所拥有的:
Data['Date | Hour'] = pd.to_datetime(Data['Date'], format='%Y-%m-%d %H:%M')
Data = Data.set_index((Data['Date | Hour']))
Data['Hour']=Data.index.time
Data['Date']=Data.index.date
TimeFrames=[]
V=Data['Hour'].unique()
a=np.arange(0,len(V))
for i in a:
TimeFrames.append(datetime.strftime(V[i],'%H:%M:%S'))
结果应该是这样的:
TimeFrames=['00:00:00','00:15:00','00:30:00','00:45:00' ...
但是,结果是:
TypeError: descriptor 'strftime' requires a 'datetime.date' object but received a 'datetime.time'
我试着用日期 (V=Data[‘Date’].unique()
) 来做,结果产生了一个日期列表……
我在想,也许我可以在 V
、运行 循环中添加一个随机日期,并在获取列表后从所有字符串中删除日期,从而得到我想要的列表,但那将是我最后的选择..有什么想法吗??
请注意,strftime
可用作 classes datetime.datetime
、datetime.date
和 datetime.time
的方法(另请参阅 documentation on datetime module ), 而你在这里处理的是一个 datetime.time
对象。
因此,将最后一行更改为
之类的内容应该没问题time.strftime(V[i],'%H:%M:%S')
调用三种方法中正确的一种(当然你必须使用 from datetime import time
导入 class)。
为了使其更短,您可以直接遍历数组(不需要 V
和 a
):
for v in Data['Hour'].unique():
TimeFrames.append(time.strftime(v,'%H:%M:%S'))