python中的条件判断

想在程序中加一个条件,当value<0 并且其绝对值大于上一条同ID的value时,返回待拆分

from openpyxl import load_workbook

wb = load_workbook('test2.xlsx')
sheet1 = wb['Sheet1']
kv = {}
for i in range(2, sheet1.max_row + 1):
id = sheet1.cell(row=i, column=1).value
value = sheet1.cell(row=i, column=2).value
key = str(id)
if key in kv:
if value < 0:
sheet1.cell(row=i, column=3).value = kv[key]
else:
sheet1.cell(row=i, column=3).value = '复充'
kv[key] = '复充'
else:
if value < 0:
sheet1.cell(row=i, column=3).value = '异常值'
if value > 0 and value <= 50:
sheet1.cell(row=i, column=3).value = '测试值'
else:
sheet1.cell(row=i, column=3).value = '首充'
kv[key] = '首充'
wb.save("test2.xlsx")

运行结果

img

另外用一个字典记录上一次同id正常的值,abs比较下,第一条正常值判断有bug,应该用elif,大概下面这样

from openpyxl import load_workbook
 
wb = load_workbook('test2.xlsx')
sheet1 = wb['Sheet1']
kv = {}
kvlastValue={}
for i in range(2, sheet1.max_row + 1):
    id = sheet1.cell(row=i, column=1).value
    value = sheet1.cell(row=i, column=2).value
    key = str(id)
    if key in kv:
        if value < 0:
            if  abs(value)>kvlastValue[key]:
                sheet1.cell(row=i, column=3).value = "待拆分"
            else:
                sheet1.cell(row=i, column=3).value = kv[key]
        else:
            sheet1.cell(row=i, column=3).value = '复充'
            kv[key] = '复充'
            kvlastValue[key]=value#记录上一条的值
    else:
        if value < 0:
            sheet1.cell(row=i, column=3).value = '异常值'
        elif value > 0 and value <= 50:#这里应该是elif,要不<0的值会被填充成首冲
            sheet1.cell(row=i, column=3).value = '测试值'
        else:
            sheet1.cell(row=i, column=3).value = '首充'
            kv[key] = '首充'
            kvlastValue[key]=value#记录上一条的值
wb.save("test2.xlsx")
 

用临时变量记录上一次value值,当本次value小于0时,判断其绝对值是否大于临时变量value值。

您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632