基于共同列合并两张数据表:将表1、表2合并生成表3
解决表合并需求的方案
这是典型的基于共同列的数据表关联合并场景,核心是通过两张表的共同列A来匹配对应数据,下面分两种常用场景给出具体实现:
SQL 解决方案
如果你的数据存储在关系型数据库(比如MySQL、PostgreSQL、SQL Server等)中,使用INNER JOIN就能得到你想要的结果:
SELECT t2.X, t2.Y, t2.A, t1.B, t1.C FROM 表2 t2 INNER JOIN 表1 t1 ON t2.A = t1.A;
说明:
INNER JOIN会只保留两张表中A列值完全匹配的行,正好符合你预期的结果(表1中a3、a4因为在表2中没有对应A值,所以不会出现在最终结果里)。- 给表起别名
t1(表1)和t2(表2)是为了简化代码,避免列名歧义(两张表都有A列,通过别名可以明确指定引用哪张表的列)。
执行这条SQL后,返回的结果就是你需要的表3结构和数据:
x1 y1 a1 b1 c1
x1 y2 a1 b1 c1
x2 y3 a2 b1 c2
Python Pandas 解决方案
如果是用Python处理内存中的数据表,可以用Pandas的merge方法实现:
import pandas as pd # 构造示例表1数据 df1 = pd.DataFrame({ 'A': ['a1', 'a2', 'a3', 'a4'], 'B': ['b1', 'b1', 'b1', 'b2'], 'C': ['c1', 'c2', 'c2', 'c1'] }) # 构造示例表2数据 df2 = pd.DataFrame({ 'X': ['x1', 'x1', 'x2'], 'Y': ['y1', 'y2', 'y3'], 'A': ['a1', 'a1', 'a2'] }) # 基于A列进行内连接合并 df3 = pd.merge(df2, df1, on='A', how='inner') # 查看结果 print(df3)
运行这段代码后,df3的结构和数据完全符合你的预期目标。
内容的提问来源于stack exchange,提问作者Marso Said
相关产品推荐
相关产品推荐

