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

使用Python匹配两个CSV文件同名数据并更新价格字段

用Pandas实现CSV同名记录的价格替换

核心思路

先从file1提取name与price的映射关系,再用该映射覆盖file2中同名记录的价格,未匹配的记录保留原价格。

实现代码

方法一:字典映射(高效推荐)

import pandas as pd

# 读取两个CSV文件
df1 = pd.read_csv('file1.csv')
df2 = pd.read_csv('file2.csv')

# 构建name到price的映射字典
price_mapping = df1.set_index('name')['price'].to_dict()

# 替换匹配到的价格,未匹配的保留原价格
df2['price'] = df2['name'].map(price_mapping).fillna(df2['price'])

# 保存结果(可选)
df2.to_csv('updated_file2.csv', index=False)

方法二:左连接合并(直观易读)

import pandas as pd

df1 = pd.read_csv('file1.csv')
df2 = pd.read_csv('file2.csv')

# 左连接匹配同名记录,保留file2的所有行
merged_df = df2.merge(df1, on='name', how='left', suffixes=('_old', '_new'))

# 用file1的价格替换匹配项,未匹配的保留原价格
df2['price'] = merged_df['price_new'].fillna(merged_df['price_old'])

# 保存结果(可选)
df2.to_csv('updated_file2.csv', index=False)

代码说明

  • 方法一通过字典映射实现快速匹配,数据量较大时性能更优;
  • 方法二通过merge左连接直观展示匹配关系,适合需要查看中间过程的场景;
  • fillna方法确保未在file1中出现的name,其价格保持file2的原始值不变。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.06 07:27:12