我正试图在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])