在熊猫数据帧行中查找第K个最小数字的方法

问题描述 投票:0回答:1

给出一个具有m行和n列的数据框,我希望每行的列名最少。我正在使用for循环。接下来,我对获得的列进行测试,如果测试失败,我希望在同一行中设置第二个最小值,依此类推。]

我当前的代码对每一行的数据框进行排序。当然,第一个值是最小值。我执行测试。如果测试失败,则转到第二个值,依此类推。该代码附在下面。 datadfObj是熊猫数据框对象。

for i in data.index:                                                #for each row
    dfObj = data.sort_values(by = i, axis=1, ascending = True)      #sorting by row and saving as new dataframe
    for column in dfObj:                                             # looping over column in sorted dataframe
         if some_condition true:
              perform action
          else:
              continue                                               # this takes me to next column

但是,这种方法非常缓慢且效率低下。这是对整个数据帧进行m次排序。如果可能,我希望不进行排序。有更好的方法吗?

给出一个具有m行和n列的数据框,我希望每行的列名最少。我正在使用for循环。接下来,我对获得的列执行测试,如果测试失败,我希望第二个...

python pandas performance dataframe series
1个回答
0
投票

为了避免在每一行进行排序,可以使用np.argsort将其向量化>

np.argsort
© www.soinside.com 2019 - 2024. All rights reserved.