Python 在条件有效时,将函数应用于列

Python 在条件有效时,将函数应用于列,python,pandas,dataframe,Python,Pandas,Dataframe,我有一个数据帧,比如说: Name Age. Certain value 0 Alex 50.0 12 1 Bob 12.0 45 2 Clarke 13.0 25 我想对年龄列应用一个函数。大概是这样的: def update_age(df): while df["Age"] < df["Certain Value"]: df

我有一个数据帧,比如说:

          Name     Age.   Certain value   
0     Alex     50.0     12
1     Bob      12.0     45
2     Clarke   13.0     25
我想对年龄列应用一个函数。大概是这样的:

def update_age(df):
  while df["Age"] < df["Certain Value"]:
     df["Age"] = df["Age"] * 2 

df["Age"] = df.apply(update_age,axis=1)
def更新时间(df):
而df[“年龄”]
我面临的问题是一个无限循环。似乎有
df[“Age”]
没有为每个迭代更新。可能是因为计算后没有返回值,但我不知道怎么做


实际的数据集很复杂,但我试图简化。希望易于理解。

工作方式如下:

def process_row(r):
    foo = row["Age"]
    while foo < row["Certain Value"]:
        foo  = foo * 2 
    return foo

工作方式如下:

def process_row(r):
    foo = row["Age"]
    while foo < row["Certain Value"]:
        foo  = foo * 2 
    return foo

是的,这是因为您使用了while循环&没有定义任何条件来破坏外观。相反,请看一看,如果我错了,请纠正我,但是,我可能必须使用while循环,因为在Bob的情况下,函数将年龄乘以2,并且条件还没有无效。因此,它必须再更新一次。更新,比较,更新,比较-并打破循环。我错过什么了吗?谢谢,请尝试
while(df[“Age”]
只需确保您确实要将所有行翻倍,也许您只希望将年龄低于切割的行翻倍?此外,您是否应该
返回df
并使用
df=update_Age(df)
调用函数?是,这是因为您使用的是while循环&没有定义任何条件来破坏外观。相反,请看一看,如果我错了,请纠正我,但是,我可能必须使用while循环,因为在Bob的情况下,函数将年龄乘以2,并且条件还没有无效。因此,它必须再更新一次。更新,比较,更新,比较-并打破循环。我错过什么了吗?谢谢,请尝试
while(df[“Age”]
只需确保您确实要将所有行翻倍,也许您只希望将年龄低于切割的行翻倍?此外,您是否应该
返回df
并使用
df=update_Age(df)
调用函数?