使用Python Pandas关联销售表与商品表的技术求助
表格匹配解决方案
问题核心
销售表的cod是纯数字编码,而商品表的item sold是「编码 - 商品名称」的组合格式,直接使用merge会因匹配键格式不统一失败,这是你之前尝试未成功的关键原因。
解决步骤(基于Python Pandas)
假设销售表变量名为sales_df,商品表变量名为item_df:
从商品表提取匹配用的编码列
拆分item sold列,提取出纯编码并转为和销售表cod一致的整数类型:import pandas as pd # 拆分编码与商品名称,提取编码列 item_df['cod'] = item_df['item sold'].str.split(' - ', expand=True)[0].astype(int)执行匹配合并
以cod为匹配键,将商品表的商品名称、价格合并到销售表:# 左连接保留销售表所有数据,匹配对应商品信息 final_df = pd.merge(sales_df, item_df[['cod', 'item sold', 'price']], on='cod', how='left') # 提取纯商品名称(可选,匹配预期结果格式) final_df['item sold'] = final_df['item sold'].str.split(' - ', expand=True)[1]调整列顺序(可选)
按照预期结果调整列的排列:final_df = final_df[['cod', 'item sold', 'quantity sold', 'price']]
为什么之前的方法失效?
merge:未统一匹配键的格式与名称,两张表没有可直接匹配的列concatenate:仅用于行/列的直接拼接,不支持按条件匹配合并数据apply:若未正确处理编码提取与匹配逻辑,会因效率或匹配规则问题失败
内容的提问来源于stack exchange,提问作者Dini
相关产品推荐
相关产品推荐

