Python 在while循环中使用datetime.time()

Python 在while循环中使用datetime.time(),python,datetime,pandas,Python,Datetime,Pandas,使用熊猫数据帧时,我有一个类似这样的情况: while (i+1<len(df.index)) and (pr<pb and pr>sl) and (df['Buy/Sell'].iloc[i+1]!=2): 将以下条件添加到while循环时: and (df['Time']<datetime.time(15,25,0)): 编辑:我正在根据while循环处理dataframe中其他列中的值。如果“时间”列中的时间达到15:27,或者如果提到的其他条件不再成立,我需要

使用熊猫数据帧时,我有一个类似这样的情况:

while (i+1<len(df.index)) and (pr<pb and pr>sl) and (df['Buy/Sell'].iloc[i+1]!=2):
将以下条件添加到while循环时:

and (df['Time']<datetime.time(15,25,0)):
编辑:我正在根据while循环处理dataframe中其他列中的值。如果“时间”列中的时间达到15:27,或者如果提到的其他条件不再成立,我需要停止。如果我不需要15:27的条件,我的代码运行得非常好

注意:
df.dtypes
返回以下内容:

df.loc[i, 'time'].time() < datetime.time(15,25,0)
Time-datetime64[ns]

编辑:做什么

`while (i+1<len(df.index)) and (pr<pb and pr>sl) and df['Buy/Sell'].iloc[i+1]!=2) and df['time'].dt.time<datetime.time(15,27,0))`

由于这一行,您得到了错误:

and (df['Time']<datetime.time(15,25,0)):
这将访问一个单行值,然后访问
time
属性

理想情况下,您不希望在可能的情况下逐行迭代重写筛选并使用
dt
访问器获取整个系列的
time
属性:


df.loc[df['Time'].dt.Time
将过滤您的整个df

这是一个拼写错误吗
和(df['Time']是的,那是一个拼写错误。感谢您指出。您不想比较时间组件而不是datetime吗?
和(df['Time']dt.Time
?我按照你的建议做了。得到了这个错误。ValueError:一个系列的真值是不明确的。使用a.empty、a.bool()、a.item()、a.any()或a.all()。你能在这里发布你想要实现的目标吗?你可能不需要逐行比较你只需要做
df.loc[df['Time'].dt.Time
#
ValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().
and (df['Time']<datetime.time(15,25,0)):
df.loc[i, 'time'].time() < datetime.time(15,25,0)