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 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
  • ¥15 手机接入宽带网线,如何释放宽带全部速度
  • ¥30 关于#r语言#的问题:如何对R语言中mfgarch包中构建的garch-midas模型进行样本内长期波动率预测和样本外长期波动率预测
  • ¥15 ETLCloud 处理json多层级问题
  • ¥15 matlab中使用gurobi时报错
  • ¥15 这个主板怎么能扩出一两个sata口
  • ¥15 不是,这到底错哪儿了😭
  • ¥15 2020长安杯与连接网探
  • ¥15 关于#matlab#的问题:在模糊控制器中选出线路信息,在simulink中根据线路信息生成速度时间目标曲线(初速度为20m/s,15秒后减为0的速度时间图像)我想问线路信息是什么