首页 > 解决方案 > 根据Python中的匹配列表连接两个矩阵?

问题描述

我想根据特定列中的匹配字符串值连接两个矩阵。例如,我正在尝试结合:

1 2 a
3 4 b
5 6 c
7 8 d

13 14 c
15 16 d
9 10 a
11 12 b

如:

1 2 9 10 a
3 4 11 12 b
5 6 13 14 c
7 8 15 16 d

请注意,矩阵的排序方式不同,但我希望结果的排序类似于第一个。

谢谢!

标签: pythonstringconcatenation

解决方案


那里没有矩阵,因为矩阵或数组(使用 NumPy)通常仅表示数字数据。此外,您正在寻找合并数据而不是连接。如果您乐于使用 3rd 方库,可以使用 Pandas:

import pandas as pd

df1 = pd.DataFrame([[1, 2, 'a'], [3, 4, 'b'], [5, 6, 'c'], [7, 8, 'd']])
df2 = pd.DataFrame([[13, 14, 'c'], [15, 16, 'd'], [9, 10, 'a'], [11, 12, 'b']])

res = df1.merge(df2, on=2).values.tolist()

print(res)

[[1, 2, 'a', 9, 10],
 [3, 4, 'b', 11, 12],
 [5, 6, 'c', 13, 14],
 [7, 8, 'd', 15, 16]]

推荐阅读