我有一个数据框,其中第1列填充日期,第2列填充年龄。我想添加一个第三列,该列将查看“年龄”列并将其值乘以2(如果该行中的值<20),否则只需将“年龄”放入该行。每个年龄以下的lambda函数乘以2。
def fun(df):
change = df.loc[:, "AGE"].apply(lambda x: x * 2 if x <20 else x)
df.insert(2, "NEW_AGE", change)
return df
答案 0 :(得分:1)
使用pandas.Series.where
:
import pandas as pd
import numpy as np
df = pd.DataFrame(np.arange(15, 25), columns=['AGE'])
df['AGE'].where(df['AGE'] >= 20, df['AGE'] * 2)
输出:
0 30
1 32
2 34
3 36
4 38
5 20
6 21
7 22
8 23
9 24
Name: AGE, dtype: int64