我有一个包含两个不同列的数据框,我需要使用它们来计算分数:

id Pos Player GW VP Final Drop TournamentPoints
0 1 1 Alessio Bianchi 2 7.0 5.0 NaN
1 2 2 Gianluca Bianco 2 7.0 0.0 NaN
2 3 2 Sara Rossi 1 5.0 0.0 NaN
3 4 2 Gabriele Verdi 1 4.5 0.0 NaN
4 5 2 Luca Gialli 1 3.0 0.0 NaN

锦标赛积分由GW和VP计算,公式如下:

df['TournamentPoints'] = ((number_of_players / 10) * (df["VP"] + 1)) + (df['GW'] * x)

其中,number_of_players和X是先前计算的.

但我需要另一步:

  1. 在"Final"列中,将值最高的行加50(在本例中,Alessio Bianchi).
  2. 如果两行在"Final"中具有相同的值,并且它是最高的,则只有"Pos"最低的行必须获得50的提升.

有什么建议吗?提前谢谢你

我已经try 了. apply()和. map()方法,但没有成功

推荐答案

假设Pos已经排序,你可以使用idxmax,这将 Select 具有最大值的第一行:

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

Python相关问答推荐

如何调整spaCy token 化器,以便在德国模型中将数字拆分为行末端的点

使用SciPy进行曲线匹配未能给出正确的匹配

根据条件将新值添加到下面的行或下面新创建的行中

Python daskValue错误:无法识别的区块管理器dask -必须是以下之一:[]

如何避免Chained when/then分配中的Mypy不兼容类型警告?

如何在类和classy-fastapi -fastapi- followup中使用FastAPI创建路由

加速Python循环

Pandas计数符合某些条件的特定列的数量

形状弃用警告与组合多边形和多边形如何解决

Python中的变量每次增加超过1

Python Pandas获取层次路径直到顶层管理

可以bcrypts AES—256 GCM加密损坏ZIP文件吗?

无论输入分辨率如何,稳定扩散管道始终输出512 * 512张图像

在极中解析带有数字和SI前缀的字符串

为什么在FastAPI中创建与数据库的连接时需要使用生成器?

PYTHON、VLC、RTSP.屏幕截图不起作用

BeautifulSoup-Screper有时运行得很好,很健壮--但有时它失败了::可能这里需要一些更多的异常处理?

如何使用Azure Function将xlsb转换为xlsx?

numpy数组和数组标量之间的不同行为

如何在Python中实现高效地支持字典和堆操作的缓存?