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

Pandas如何实现列A每个值对应列B唯一且重复时同步匹配

你提到的DataFrame结构如下:
数据表示意图

实现方案

你要的效果本质是为列A的每一个唯一值绑定固定的列B映射,即便A重复出现也用同一个映射值,用Pandas的map方法就能快速实现,具体步骤如下:

  1. 先提取列A和列B的唯一对应关系,生成映射字典
  2. 用映射字典匹配列A的所有值,生成目标Value列

完整代码示例

import pandas as pd

# 替换为你自己的原DataFrame
df = pd.read_csv("your_data.csv")

# 构建A到B的唯一映射,默认取每个A值第一次出现对应的B值
a_to_b = df.drop_duplicates(subset="A").set_index("A")["B"].to_dict()

# 生成Value列
df["Value"] = df["A"].map(a_to_b)

效果验证

我们用模拟数据测试运行效果:

# 模拟测试数据
test_df = pd.DataFrame({
    "A": ["苹果", "香蕉", "苹果", "橙子", "香蕉", "苹果"],
    "B": [5, 3, 99, 4, 88, 77]
})

a_to_b = test_df.drop_duplicates("A").set_index("A")["B"].to_dict()
test_df["Value"] = test_df["A"].map(a_to_b)
print(test_df)

输出结果:

A   B  Value
0  苹果   5      5
1  香蕉   3      3
2  苹果  99      5
3  橙子   4      4
4  香蕉  88      3
5  苹果  77      5

可以看到所有重复的A值对应的Value完全一致,符合需求。如果同一个A对应多个B值时你不想取第一个出现的B值,也可以手动构造a_to_b字典指定对应关系即可。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 08:45:03