我有一个 pandas 数据框,我试图根据具有完全相同值的所有列删除行。下面是一个有助于理解这个想法的示例。
输入:
index A B C D E F ....
0 1 2 3 1 3 4
1 2 2 2 2 2 2
2 5 5 5 5 5 5
3 7 7 6 7 7 7
输出:
index A B C D E F ....
0 1 2 3 1 3 4
3 7 7 6 7 7 7
这里可以有很多列。
请您参考如下方法:
使用数字 DataFrame 执行此操作的一种有效方法是使用标准偏差(仅当所有值都相同时才为 0):
df[df.std(axis=1) > 0]
Out:
A B C D E F
0 1 2 3 1 3 4
3 7 7 6 7 7 7
40k 行的时间:
%timeit df[df.std(axis=1) > 0]
1000 loops, best of 3: 1.69 ms per loop
%timeit df[df.nunique(1)>1]
1 loop, best of 3: 2.62 s per loop
