如何使用Pandas基于单表列与另一表两列拼接结果连接DataFrame
Pandas 按自定义拼接列匹配连接两张数据表
步骤1:创建原始数据表
先导入Pandas并构建两个DataFrame:
import pandas as pd # 构建表a df_a = pd.DataFrame({ 'name': ['Mr. james john', 'Mr. jim james', 'Mr. abe james'], 'designation': ['manager', 'tester', 'developer'] }) # 构建表b df_b = pd.DataFrame({ 'first name': ['james', 'jim', 'abe'], 'last name': ['john', 'james', 'james'], 'emp id': [1, 2, 3] })
步骤2:在表b中生成匹配用的name列
按照要求拼接Mr. +first name+空格+last name,生成和表a格式一致的name列:
df_b['name'] = 'Mr. ' + df_b['first name'] + ' ' + df_b['last name']
步骤3:按name列匹配连接
使用merge方法以name为键连接两张表,默认内连接会只保留双方匹配的行:
# 执行连接操作 merged_df = pd.merge(df_a, df_b, on='name') # 可选操作:移除重复的name列 merged_df = merged_df.drop(columns='name')
最终结果
打印merged_df会得到如下结果:
designation first name last name emp id 0 manager james john 1 1 tester jim james 2 2 developer abe james 3
内容的提问来源于stack exchange,提问作者saravanan
相关产品推荐
相关产品推荐

