排序数据。熊猫数据框

时间:2018-07-12 14:19:16

标签: python pandas sorting dataframe

正在寻求有关如何解决以下问题的建议。

我有Pandas数据框,比方说1.000.000行乘10列(A,B,C ... J)。数据类型为float。

如果存在另一个原始值(j),且所有值等于或大于原始原始值(i)中的值,则任务是删除数据框中的所有行(i)。

(Ai<=Aj) and (Bi<=Bj) and (Ci<=Cj) ... and (Ji<=Jj)

我想知道pandas工具包或任何其他分析python模块中是否存在有效解决此问题的工具。

我有一个效率很低的解决方案,即在一个简单数组中进行多次迭代。希望找到更有价值的东西。

简化示例,原始数据:

    0 1 5 4 4 2
    2 5 6 4 3 7
   -2 5 6 5 3 7
    0 0 0 0 0 1
    0 0 0 0 0 8

结果为:

 0 1 5 4 4 2
 2 5 6 4 3 7
-2 5 6 5 3 7
 0 0 0 0 0 8

1 个答案:

答案 0 :(得分:1)

numpy

#import numpy as np
df[np.any(np.sum(df.values>=df.values[:,None],1)==1,1)]
Out[40]: 
   A  B  C  D  E  F
0  0  1  5  4  4  2
1  2  5  6  4  3  7
2 -2  5  6  5  3  7
4  0  0  0  0  0  8