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

Pandas新DataFrame中为合并的Name与Customer唯一值列匹配对应Value值

解决方案

你可以先构造Name到Value的唯一映射字典,再通过映射给新数据集的Value列赋值,具体操作如下:

步骤1:构造Name-Value映射字典

利用原数据中同一个Name对应Value唯一的特性,提取去重后的映射关系:

name_value_map = file.drop_duplicates(subset='Name').set_index('Name')['Value'].to_dict()

步骤2:为新DataFrame的Value列赋值

使用pandas的map方法匹配映射关系,不属于Name的客户名会自动返回空值,如果你需要显示空字符串而非NaN,可以追加fillna处理:

# 保留NaN空值写法
df['Value'] = df['All'].map(name_value_map)

# 改为空字符串写法,更符合你给出的预期输出
df['Value'] = df['All'].map(name_value_map).fillna('')

更简洁的完整实现方案(可选)

你也可以跳过手动拼接列表的步骤,直接通过表拼接实现需求,代码可读性更高:

# 提取所有Name对应的Value数据
name_df = file[['Name', 'Value']].drop_duplicates().rename(columns={'Name': 'All'})
# 提取所有Customer数据,Value默认设为空
customer_df = pd.DataFrame({'All': file['Customer'].unique(), 'Value': ''})
# 合并两个表并按出现顺序去重,得到最终结果
final_df = pd.concat([name_df, customer_df]).drop_duplicates(subset='All').reset_index(drop=True)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 10:54:02