我正在尝试使用df.assign方法在数据框中创建新列:
df_3= df.assign(wt_medal_diff=lambda x: (x['Gold']-x['Gold.1'])/(x['Gold']+x['Gold.1']) if [(x['Gold']>1) | (x['Gold.1']>1)] else np.nan)
该列将使用公式进行更新,但不会应用该语句中的逻辑。
我可以使用以下代码对df.apply做同样的事情:
df["wt_medal_diff"] = df.apply(
lambda row:\
(row['Gold']-row['Gold.1'])/(row['Gold']+row['Gold.1'])\
if (row['Gold'] >= 1) and (row['Gold.1'] >= 1)\
else np.nan,
axis=1)
有什么想法吗?