我想对df中有多少其他cols大于或等于参考col进行排名。鉴于testdf:

testdf = pd.DataFrame({'RefCol': [10, 20, 30, 40],
                      'Col1': [11, 19, 29, 40],
                      'Col2': [12, 21, 28, 39],
                      'Col3': [13, 22, 31, 38]
                      })


我正在使用辅助函数:

def sorter(row):
    sortedrow = row.sort_values()
    return sortedrow.index.get_loc('RefCol')


如:

testdf['Score'] = testdf.apply(sorter, axis=1)


对于实际数据,此方法非常慢,如何加快速度?谢谢

最佳答案

看起来您需要比较RefCol并检查是否有少于RefCol的列,请使用:

testdf.lt(testdf['RefCol'],axis=0).sum(1)




0    0
1    1
2    2
3    2


对于大于等于使用:

testdf.drop('RefCol',1).ge(testdf.RefCol,axis=0).sum(1)

关于python - 计分 Pandas 列与其他列,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/57185160/

10-12 18:46