使用panda查找是否有两个名称不同但值相同的列



我有一个有30列的表,主要是有500k行的数字表。我想检查这个表中是否有两列对所有行都具有相同的值。例如:

我有这张桌子:

>>> num1   num2  num3  num4
0   5.1    2.3   7     5.1
1   2.2    4.4   3.1   2.2
2   3.7    11.1   5.9  3.7
3   4.2    1.5    0.3  4.2

所以在这种情况下;num4";因为与列";num1";。

到目前为止,我只看到了查看是否存在相同值或它们是否具有相同名称的方法,但没有看到两列是否相同。

我的最终目标:消除重复列(按值而非按名称(

尝试duplicated

out = df.loc[:,~df.T.duplicated()]
Out[397]: 
num1  num2  num3
0   5.1   2.3   7.0
1   2.2   4.4   3.1
2   3.7  11.1   5.9
3   4.2   1.5   0.3

out = df.T.drop_duplicates().T
Out[399]: 
num1  num2  num3
0   5.1   2.3   7.0
1   2.2   4.4   3.1
2   3.7  11.1   5.9
3   4.2   1.5   0.3

以下操作非常好。

import pandas as pd
data = {'ID':['1234564567', '5678995545'],'Amount': [59.99, 19.99],
'ID2':['1234564567', '5678995545']}
data = pd.DataFrame(data)
data.T.drop_duplicates().T
ID Amount
0  1234564567  59.99
1  5678995545  19.99

基本上你需要先转置,drop_duplicates,然后再转置。

干杯

最新更新