如何用Python/Excel按ID分组将条码合并为单行逗号分隔格式
实现方法:同一ID对应Barcode合并为单行(逗号分隔)
Excel 实现方式
方法1:TEXTJOIN 函数(Excel 2019/365 及以上版本)
假设ID列是A列,Barcode列是B列,在空白列(比如C列)的第一个数据行输入:=TEXTJOIN(",",TRUE,IF($A$2:$A$100=A2,$B$2:$B$100,""))
- Excel 2019及之前版本按 Ctrl+Shift+Enter 执行数组公式,新版本直接回车即可
- 公式说明:
TEXTJOIN用逗号连接符合条件的Barcode,IF筛选出当前ID对应的所有Barcode,TRUE参数忽略空值
方法2:Power Query(全版本通用)
- 选中数据区域,点击「数据」选项卡 → 「从表格/区域」(将数据导入Power Query编辑器)
- 在编辑器中,点击「转换」选项卡 → 「分组依据」
- 分组依据选择「ID」,新列名设为「合并Barcode」,操作选择「行」→「合并」,分隔符输入逗号
- 点击确定后,点击「关闭并上载」,即可得到合并后的表格
Python 实现方式(用Pandas库)
直接用Pandas的分组聚合功能,代码示例如下:
import pandas as pd # 示例数据(也可通过pd.read_excel/pd.read_csv读取本地文件) data = { "ID": ["001", "001", "002", "002", "003"], "Barcode": ["BC001", "BC002", "BC001", "BC003", "BC002"] } df = pd.DataFrame(data) # 分组合并 result = df.groupby("ID")["Barcode"].agg(lambda x: ",".join(x)).reset_index() print(result)
- 运行后输出:
ID Barcode 0 001 BC001,BC002 1 002 BC001,BC003 2 003 BC002
- 说明:
groupby("ID")按ID分组,agg(lambda x: ",".join(x))将每组的Barcode用逗号连接成字符串,reset_index()把分组后的索引转为普通列
内容的提问来源于stack exchange,提问作者Nick
相关产品推荐
相关产品推荐

