Python中表格的逐行匹配

问题描述 投票:0回答:1

我正在尝试对100多个表进行成对比较,以通过“ ID”查找共同的行。有没有一种简单的方法就可以进行这样的成对比较,而无需经历很多循环?

期望的输出是一个矩阵/热图,显示了表之间的相似性,表之间的行数相同。

附有我的桌子样本。它们都保存在我的机器的同一目录中。

谢谢,

Table 1Table 2

python dataframe rows pairwise
1个回答
0
投票

您可以在这种情况下使用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
>>> 
© www.soinside.com 2019 - 2024. All rights reserved.