计分熊猫列与其他列

时间:2019-07-24 14:21:19

标签: python python-3.x pandas

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

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

1 个答案:

答案 0 :(得分:2)

看起来您需要比较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)