开发者社区> 问答> 正文

检查数据框中的每个值,如果该值较小,则更改给定的值

cateory Percentage AB 99 CD 65 EF 12 GH 25 IJ 90 KL 100

如果CD的百分比小于70,则将其更改为71,否则现有值很好。如果EF的百分比小于20,则将其更改为21,否则现有值很好。如果GH的百分比小于30,则将其更改为45,否则现有值为。对于AB,现有值很好

输出量

cateory Percentage
    AB      99
    CD      65
    EF      21
    GH      45
    IJ      90
    KL      100

问题来源:stackoverflow

展开
收起
is大龙 2020-03-24 12:29:25 425 0
1 条回答
写回答
取消 提交回答
  • 通过比较两列来创建要替换的元组列表,如果匹配则替换为new值-元组的最后一个值:

    L = [('CD', 70, 71), ('EF', 20, 21), ('GH', 30, 45)]
    
    for cat, less, new in L:
        m = df['cateory'].eq(cat) & df['Percentage'].lt(less)
        df.loc[m, 'Percentage'] = new
    print (df)
      cateory  Percentage
    0      AB          99
    1      CD          71
    2      EF          21
    3      GH          45
    4      IJ          90
    5      KL         100
    

    回答来源:stackoverflow

    2020-03-24 12:29:32
    赞同 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关电子书

更多
用计算和数据去改变整个世界 立即下载
低代码开发师(初级)实战教程 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载