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

Pandas DataFrame多列匹配条件下从其他列取值填充新列的实现方法

解决方案

方法:使用map映射匹配(无排序依赖,高效)

核心逻辑是先构建col2到col3的映射关系,直接对col1的值做匹配查找,完全不依赖数据行的排序,符合业务要求。
代码示例:

import pandas as pd

# 构造示例DataFrame
df = pd.DataFrame({'col1': ['a', 'b', 'c', 'd'], 'col2': ['b', 'c', 'd', 'e'], 'col3': [1.0, 2.0, 3.0, 4.0]})

# 构建col2到col3的映射关系
col2_col3_map = df.set_index('col2')['col3']
# 对col1做映射得到col4
df['col4'] = df['col1'].map(col2_col3_map)

print(df)

运行输出和预期结果完全一致:

col1 col2  col3  col4
0    a    b   1.0   NaN
1    b    c   2.0   1.0
2    c    d   3.0   2.0
3    d    e   4.0   3.0

方案说明

  • 无排序依赖:映射基于键值对匹配,无论原数据行顺序如何打乱都能得到正确结果
  • 性能优秀:时间复杂度为O(n),适合大数据量场景
  • 逻辑简洁:不需要额外的循环、条件判断,可读性远高于mask等条件判断类方法,更适配跨行列匹配的需求场景

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 19:15:06