我在excel中有数据,一张纸的日期作为列,另一张的日期作为行。使用pd.read_excel将它们作为数据帧获取。一个(Data1)的类型为datetime.datetime,另一个(Data2)的类型为timestamp。
我想做
Data1[Data1.index<Data2.columns[-1]]
这将返回错误
TypeError:“ datetime.time”和 “时间戳记”
我尝试做
datetime(Data2.columns[-1].year,Data2.columns[-1].month,Data2.columns[-1].day)
代替
Data2.columns[-1]
错误更改为
TypeError:“ datetime.time”和 'datetime.datetime'
编辑
这似乎是问题的症结所在
Data1[Data1.index<Data1.index[3]]
返回
TypeError:“ datetime.time”实例与 'datetime.datetime'
Data1.index的数据类型为datetime.time。
答案 0 :(得分:1)
确保将苹果与苹果进行比较。比较完整的日期时间(日期和时间部分)或仅比较其中之一。例如:
from datetime import datetime, timedelta
import pandas as pd
# date and time:
pd.Timestamp('now') >= datetime.now() + timedelta(hours=1)
# False
# time only:
pd.Timestamp('now').time() >= (datetime.now() + timedelta(hours=1)).time()
# False
# date only:
pd.Timestamp('now').date() >= (datetime.now() + timedelta(hours=1)).date()
# True
与例如
相对pd.Timestamp('now').time() >= (datetime.now() + timedelta(hours=1))
...将抛出
TypeError:“> date”和“ datetime.time”实例之间不支持 'datetime.datetime'