python - 根据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
请注意,矩阵的排序方式不同,但我希望结果的排序类似于第一个。
谢谢!
解决方案
那里没有矩阵,因为矩阵或数组(使用 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]]
推荐阅读
- python - 如何在 python 中使用 K 均值识别和分离集群?
- css - 为什么没有应用我的活动标签样式?
- javascript - 无法读取 null 的属性“getAttribute”
- c# - PowerPoint Application .Quit() 导致所有进程关闭
- spring - Spring Security Filter 如何与自定义身份验证一起工作以及如何将其与 Servlet Filter 结合使用?
- postgresql - Azure 函数创建太多与 PostgreSQL 的连接
- c# - 当从 sssms 执行时字段不为空时,来自 sys.check_constraints 的定义列在 ado.net datareader 中为空
- python - 延迟倒计时时钟,直到我更换屏幕
- c++ - boost::enable_if 在成员函数上,重载返回类型
- python - 组合多个数据框列