我有一个有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
,然后再转置。
干杯