我正在尝试对100多个表进行成对比较,以通过“ ID”查找共同的行。有没有一种简单的方法就可以进行这样的成对比较,而无需经历很多循环?
期望的输出是一个矩阵/热图,显示了表之间的相似性,表之间的行数相同。
附有我的桌子样本。它们都保存在我的机器的同一目录中。
谢谢,
您可以在这种情况下使用numpy我假设所有数据都是这样的数据框:
id1 = ['A','B','C','D','E','F','G','H','I']
Value1 = np.random.random((len(id1),))
data1 = pd.DataFrame({'ID':id1,'Value':Value1})
id2 = ['O','P','A','C','R','T','U','L','M','B','E']
Value2 = np.random.random((len(id2),))
data2 = pd.DataFrame({'ID':id2,'Value':Value2})
我们将使用numpy.in1d这样从data1获取值:
result1 = data1[np.in1d(data1['ID'],data2['ID'])]
或者我们将从data2中获取价值,就像这样:
result2 = data2[np.in1d(data2['ID'],data1['ID'])]
和结果:
>>> result1
ID Value
0 A 0.213569
1 B 0.483985
2 C 0.888146
4 E 0.812130
>>> result2
ID Value
2 A 0.875728
3 C 0.690587
9 B 0.793642
10 E 0.679874
>>>