You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何基于第二个DataFrame为目标DataFrame添加匹配列并合并数据?

基于关联列合并DataFrame新增列的解决方案

需求说明

现有两个DataFrame:

  • df_a为目标操作对象,需新增一列Name
  • df_b包含关联列Code和对应的Name值,需将匹配的Name映射到df_a中

原始数据

df_a数据:

_ | Code | Speed | Velocity |
0 |  DA  |   23  |    22    |
1 |  ES  |   23  |    22    |
2 |  DA  |   23  |    22    |
3 |  GA  |   23  |    22    |
4 |  NU  |   23  |    22    |

df_b数据:

_ | Code |     Name    |
0 |  DA  |   DinoAero  |
1 |  ES  |    Espeed   |
2 |  GA  |    GeoArk   |
3 |  NU  |  NewUnicorn |

实现方法

使用pandas的merge()方法执行左连接,保留df_a的所有行,并通过Code列匹配df_b中的Name值:

import pandas as pd

# 构造示例DataFrame
df_a = pd.DataFrame({
    'Code': ['DA', 'ES', 'DA', 'GA', 'NU'],
    'Speed': [23, 23, 23, 23, 23],
    'Velocity': [22, 22, 22, 22, 22]
})

df_b = pd.DataFrame({
    'Code': ['DA', 'ES', 'GA', 'NU'],
    'Name': ['DinoAero', 'Espeed', 'GeoArk', 'NewUnicorn']
})

# 左连接合并,新增Name列
result_df = pd.merge(df_a, df_b[['Code', 'Name']], on='Code', how='left')

# 调整列顺序(可选,匹配目标结果的列顺序)
result_df = result_df[['Code', 'Name', 'Speed', 'Velocity']]

print(result_df)

运行结果

Code       Name  Speed  Velocity
0   DA   DinoAero     23        22
1   ES    Espeed     23        22
2   DA   DinoAero     23        22
3   GA    GeoArk     23        22
4   NU  NewUnicorn     23        22

内容的提问来源于stack exchange,提问作者Lemsic

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.12 07:55:38