我想对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/