CSV文件USERID与Excel文件USERID匹配并添加WAVE列需求
解决CSV与Excel的USERID匹配并填充WAVE值的方案
我平时处理这类跨文件数据匹配需求时,常用两种实用方案——一种适合自动化批量处理,另一种适合手动快速操作,你可以根据自己的场景选择:
方法1:用Python Pandas(适合大量数据/重复操作)
如果数据量较大,或者以后需要重复执行这个匹配任务,用代码处理效率最高:
- 先安装所需依赖库(未安装过的话执行这条命令):
pip install pandas openpyxl
- 运行以下代码,记得把
your_csv_file.csv、your_excel_file.xlsx替换成你实际的文件名,若Excel的工作表名不是Sheet1也要对应修改:
import pandas as pd # 读取本地CSV文件 csv_data = pd.read_csv("your_csv_file.csv") # 读取Excel中仅包含USERID和WAVE的列 excel_data = pd.read_excel("your_excel_file.xlsx", sheet_name="Sheet1", usecols=["USERID", "WAVE"]) # 按USERID左连接,确保CSV的所有行都被保留 merged_data = pd.merge(csv_data, excel_data, on="USERID", how="left") # 将匹配失败的空值替换为"NOT Found" merged_data["WAVE"] = merged_data["WAVE"].fillna("NOT Found") # 保存处理后的CSV文件 merged_data.to_csv("updated_csv_with_wave.csv", index=False)
代码说明:
how="left":保证CSV里的每一行都能保留,哪怕Excel中没有对应的USERIDfillna("NOT Found"):专门处理匹配失败的场景,把空值替换为指定文本- 最终生成的
updated_csv_with_wave.csv就是处理完成的文件
方法2:用Excel内置函数(适合小数据量/手动操作)
如果只是偶尔处理一次,直接用Excel的函数更便捷:
- 把CSV文件导入Excel:打开Excel,点击「数据」选项卡 → 「自文本/CSV」,选择你的CSV文件完成导入
- 在导入后的CSV数据右侧新增一列,表头命名为
WAVE - 在
WAVE列的第一个数据单元格(比如B2,假设USERID在A列)输入公式:
=IFERROR(VLOOKUP(A2, [your_excel_file.xlsx]Sheet1!$A:$B, 2, FALSE), "NOT Found")
- 将鼠标放在单元格右下角,当光标变成十字形时,下拉填充整个列
公式说明:
VLOOKUP(A2, [your_excel_file.xlsx]Sheet1!$A:$B, 2, FALSE):从Excel文件的Sheet1中,查找A2对应的USERID,返回第2列(WAVE)的值,FALSE表示精确匹配IFERROR(..., "NOT Found"):如果VLOOKUP找不到匹配项,就显示"NOT Found"
⚠️ 注意:如果Excel文件和导入的CSV不在同一文件夹,需要把[your_excel_file.xlsx]替换成完整文件路径,比如[C:\Users\YourName\Documents\your_excel_file.xlsx]
内容的提问来源于stack exchange,提问作者Baha
相关产品推荐
相关产品推荐

