Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/353.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 检查TimeDelta对象是否等于特定时间_Python_Pandas - Fatal编程技术网

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。你需要减少这一点。