【问题标题】:Is there a way to compare values of one column and then update a list based on if a condition is met?有没有办法比较一列的值,然后根据是否满足条件更新列表?
【发布时间】:2019-07-01 22:31:39
【问题描述】:

我有一个日期时间、工资和持续时间的数据框。 Duration 是两个日期时间列之间的差异,pay 是我支付给提供商以完成服务的费用。我正在尝试遍历“duration”列中的每个值,如果该值 >= 100,则将值添加到列表 newPrice 中,该值是 payColumn*.99 中的相应值

我尝试过构建嵌套的 if/for 循环、lambda 语句以及构建我自己的函数。我的工作正在从 R 过渡到 Python,目前在将这个过程转换为 Python 代码方面做得不好。

 duration = [122.0, 48.0, 102.0]
 Pay = [50.00, 26.49, 36.80]
 newPay = []

 for i in df['duration']:
     if i >= 100:
          newPay.append(df['Pay']*.99)
     elif i >= 50 and i <= 99.99:
          newPay.append(df['Pay']*.98)
     else:
          newPay.append(df['Pay']*.97)
 print(newPay)

我希望 newPay 用原始工资乘以修饰符来填充

【问题讨论】:

    标签: python dataframe for-loop if-statement conditional-statements


    【解决方案1】:
    duration = [122.0, 48.0, 102.0]
    pay = [50.00, 26.49, 36.80]
    new_pay = []
    
    for i, value in enumerate(duration):
        if value >= 100:
            new_pay.append(pay[i]*.99)
        elif value >= 50 and value <= 99.99:
            new_pay.append(pay[i]*.98)
        else:
            new_pay.append(pay[i]*.97)
    print(new_pay)
    

    【讨论】:

    • 非常感谢!我不知道“枚举”,也不知道使用 [i] 会像在 R 循环中一样工作。再次感谢您的帮助!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-11-23
    • 2015-09-13
    • 2016-04-15
    • 2021-05-23
    • 1970-01-01
    • 2023-04-07
    • 1970-01-01
    相关资源
    最近更新 更多