我有一个包含两个不同列的数据框,我需要用它们来计算分数:
id | 位置 | 玩家 | GW | 副总裁 | 决赛 | 掉落 | 锦标赛积分 |
---|---|---|---|---|---|---|---|
0 | 1 | 1 | 阿莱西奥·比安奇 | 2 | 7.0 | 5.0 | NaN |
1 | 2 | 2 | 吉安卢卡·比安科 | 2 | 7.0 | 0.0 | NaN |
2 | 3 | 2 | 萨拉·罗西 | 1 | 5.0 | 0.0 | NaN |
3 | 4 | 2 | 加布里埃尔威尔第 | 1 | 4.5 | 0.0 | NaN |
4 | 5 | 2 | 卢卡·贾利 | 1 | 3.0 | 0.0 | NaN |
锦标赛积分由 GW 和 VP 计算得出,公式为:
df['锦标赛积分'] = ((玩家数量 / 10) * (df["VP"] + 1)) + (df['GW'] * x)
其中 number_of_players 和 X 是之前计算的。
但是我需要另一个步骤:
有什么建议吗?预先感谢
我已经尝试过 .apply() 和 .map() 方法但没有成功
idxmax
,这将选择具有最大值的第一行:
df['TournamentPoints'] = ((number_of_players / 10) * (df["VP"] + 1)) + (df['GW'] * x)
df.loc[df['Final'].idxmax(), 'TournamentPoints'] += 50
如果 Pos 未排序:
df.loc[df.sort_values(by='Pos')['Final'].idxmax(), 'TournamentPoints'] += 50