类型错误:"时间戳"和"布尔"实例之间不支持"<="



我正试图在Python中计算一些记录,但我得到了上面的错误消息。

for i in (0, ConsCount):
if ConsCount > 0:
for x in range(0, ConsCount):
ConsBlendTable = df [(df.CONS_BATCH == ConsTable['Batch'].iloc[i])]
ConsBlendCount = len(ConsBlendTable.index)

for p in (0, ConsBlendCount):
if ConsBlendCount > 0:
Cons_Qty= ConsTable['Qty'].iloc[i]
Cons_Exit = False
PartCons_Qty = 0
TPartCons_Qty=0
ConsPosting=False
for j in range(0,ConsBlendCount):
DeclDate= ConsBlendTable['DeclarationDate'].iloc[p]
if DeclDate <= ((ConsTable['PstgDate'].iloc[p]) and (ConsBlendTable['FirstDate'].iloc[p]<=ConsTable['PstgDate'].iloc[p])):
Sendung_Content >= ConsBlendTable['Remain_Bestand'][p] + (Cons_Qty + TPartCons_Qty)
if Sendung_Content >= 0:
Cons_Exit =True
PartCons_Qty = Cons_Qty - TPartCons_Qty
TCons_Qty = ConsBlendTable['AC_DispoBest'][p] - Sendung_Content

我在这一行得到了错误信息:

if DeclDate <= ((ConsTable['PstgDate'].iloc[p]) and (ConsBlendTable['FirstDate'].iloc[p]<=ConsTable['PstgDate'].iloc[p])):

TypeError: '<=' Timestamp'和'bool'实例之间不支持

值是原始df中的日期,但当我使用iloc时,它转换为时间戳。

看起来你的括号加错了:

当前代码:

if DeclDate <= ((ConsTable['PstgDate'].iloc[p]) and (ConsBlendTable['FirstDate'].iloc[p]<=ConsTable['PstgDate'].iloc[p]))

((ConsTable['PstgDate'].iloc[p]) and (ConsBlendTable['FirstDate'].iloc[p]<=ConsTable['PstgDate'].iloc[p]))计算结果为布尔值,因此您将得到错误。

尝试将上面的行改为:

if DeclDate <= (ConsTable['PstgDate'].iloc[p]) and (ConsBlendTable['FirstDate'].iloc[p]<=ConsTable['PstgDate'].iloc[p])

相关内容

最新更新