使用带有lamda函数的df.assign将列添加到熊猫DF

时间:2019-12-10 06:41:43

标签: python pandas data-science

我正在尝试使用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)

有什么想法吗?

0 个答案:

没有答案
相关问题