正在寻求有关如何解决以下问题的建议。
我有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
答案 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