You need to enable JavaScript to run this app. Pandas如何将一个DataFrame的两列映射后填充到另一个DataFrame列
优惠活动
大模型
产品
解决方案
定价
更多

Pandas如何将一个DataFrame的两列映射后填充到另一个DataFrame列

Pandas按公共列匹配填充字段的实现方案

核心需求

现有两个DataFrame,第一个存储Nodes节点与对应的CapLiv数值,需要根据Nodes值的匹配关系,把第一个表中的CapLiv数值填充到第二个表的空CapLiv列中。

两种最优实现方案

方案1:左关联匹配(推荐优先使用)

适合绝大多数场景,逻辑直观、不易出错,后续需要关联其他字段时扩展性极强:

# 假设第一个表变量名为df_nodes,第二个表变量名为df_main
df_main = df_main.merge(
    df_nodes[["Nodes", "CapLiv"]], 
    on="Nodes", 
    how="left",
    suffixes=("", "_ref")
)
# 用关联得到的数值覆盖原空列,删除临时字段
df_main["CapLiv"] = df_main["CapLiv_ref"]
df_main.drop("CapLiv_ref", axis=1, inplace=True)

方案2:字典映射(高性能场景使用)

适合数据量极大(百万行以上)、仅需要填充单个字段的场景,执行速度比关联更快:

# 生成Nodes到CapLiv的映射字典
cap_liv_dict = pd.Series(df_nodes.CapLiv.values, index=df_nodes.Nodes).to_dict()
# 直接映射填充目标列,注意你自行实现的代码中`destino`为笔误,应替换为第二个表的节点列名`Nodes`
df_main["CapLiv"] = df_main["Nodes"].map(cap_liv_dict)

方案选择建议

  • 日常开发、数据量不大时选方案1,代码可读性高,便于排查关联异常
  • 处理超大数据量、对性能有要求时选方案2,内存占用和执行速度更优

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.16 01:36:06