如果大于除以值,则elif通过

时间:2018-05-03 09:33:00

标签: python python-3.x divide

我想更改FuelFlow中大于df_OmanAirTO的{​​{1}}列的所有值。大于5800的值应除以5800。小于2,2046226218的其他值应保持不变。

我是Python的初学者并尝试了以下内容:

5800

我没有收到错误,但我在for row in df_OmanAirTO.FuelFlow: if row>=5800: df_OmanAirTO.FuelFlow/2.2046226218 elif row<=5800: pass print(df_OmanAirTO.FuelFlow) 列中的值也没有改变。什么是正确的脚本?

感谢您提前帮助我!

2 个答案:

答案 0 :(得分:0)

当你写:

df_OmanAirTO.FuelFlow / 2.2046226218

你只需要计算除法,然后扔掉结果。

要更新列,您必须写:

for row in df_OmanAirTO.FuelFlow:
    if row>=5800:
        df_OmanAirTO.FuelFlow = df_OmanAirTO.FuelFlow / 2.2046226218
        # or, using shorthand as suggested by Jean-François Fabre
        # df_OmanAirTO.FuelFlow /= 2.2046226218
    print(df_OmanAirTO.FuelFlow)

答案 1 :(得分:0)

我认为这将解决您的问题:我已经定义了一个单独的方法来检查条件并执行操作。

# Method to check condition
def div(value):
    if value >= 5800:
        value /= 2.2046226218
    return value

# To perform operation row wise in an efficient way.
df_OmanAirTO.FuelFlow = df_OmanAirTO.loc[:,'FuelFlow'].apply(lambda row: div(row))

如果您有任何疑问,可以询问。