我想更改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)
列中的值也没有改变。什么是正确的脚本?
感谢您提前帮助我!
答案 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))
如果您有任何疑问,可以询问。