Python 检查TimeDelta对象是否等于特定时间
我有一段代码:Python 检查TimeDelta对象是否等于特定时间,python,pandas,Python,Pandas,我有一段代码: df['time'].iloc[1]+df['time'].iloc[2] 返回: Timedelta('0天00:04:51') 我试图写一个if语句来检查它的值: if df['time'] == '0 days 00:04:51': print ('True') else: print ('False') 它正在打印False,我不知道为什么。如何检查Timedelta对象的值?您在这里做的是将Timedelta(“0天00
df['time'].iloc[1]+df['time'].iloc[2]
返回:
Timedelta('0天00:04:51')
我试图写一个if
语句来检查它的值:
if df['time'] == '0 days 00:04:51':
print ('True')
else:
print ('False')
它正在打印
False
,我不知道为什么。如何检查Timedelta对象的值?您在这里做的是将Timedelta(“0天00:04:51”)
与字符串“0天00:04:51”
进行比较,而您应该将其与类似对象进行比较,因此:
if df['time']==timedelta(0,291):
print("True")
else:
print("False")
请注意,timedelta:
- 他没有资本
- 将0291作为参数;这意味着“0天291秒”
print(str(df['time']==timedelta(0,291)))
这有着完全相同的结果,而且更加紧凑。这应该可以:
if df['time'] == timedelta(days = 0, minutes = 4, seconds = 51):
print("True")
else:
print("False")
除了已经介绍的解决方案外,还有另一种方法可以检查Python3中的
timedelta
值:
if df['time'].total_seconds() == 291.0:
print("true")
谢谢你的回复。我收到一个错误:
name'未定义Timedelta
。我尝试了从datetime import timedelta导入,但似乎没有解决错误。有什么想法吗?修复了这个错误,但是现在我收到了一个错误timedelta days组件不支持的类型:str
对不起;将其替换为timedelta(0291)
,因为291秒=4:51可以使用df['time']==pd.timedelta('0天00:04:51')
进行检查,但请注意,不能在if语句中使用此选项。因为它返回一个布尔数组,而不是一个True或False。你需要减少这一点。