xjf101 2022-09-04 12:06 采纳率: 66.7%
浏览 49
已结题

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

  • 写回答

4条回答 默认 最新

  • CSDN专家-showbo 2022-09-04 12:41
    关注

    另外用一个字典记录上一次同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")
     
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(3条)

报告相同问题?

问题事件

  • 系统已结题 9月12日
  • 已采纳回答 9月4日
  • 创建了问题 9月4日

悬赏问题

  • ¥15 R语言Rstudio突然无法启动
  • ¥15 关于#matlab#的问题:提取2个图像的变量作为另外一个图像像元的移动量,计算新的位置创建新的图像并提取第二个图像的变量到新的图像
  • ¥15 改算法,照着压缩包里边,参考其他代码封装的格式 写到main函数里
  • ¥15 用windows做服务的同志有吗
  • ¥60 求一个简单的网页(标签-安全|关键词-上传)
  • ¥35 lstm时间序列共享单车预测,loss值优化,参数优化算法
  • ¥15 Python中的request,如何使用ssr节点,通过代理requests网页。本人在泰国,需要用大陆ip才能玩网页游戏,合法合规。
  • ¥100 为什么这个恒流源电路不能恒流?
  • ¥15 有偿求跨组件数据流路径图
  • ¥15 写一个方法checkPerson,入参实体类Person,出参布尔值