Python Pandas类Vlookup实现:找出等级变更的商品编号
解决DataFrame等级不一致商品编号的查询问题
先通过
merge合并两个DataFrame,以article number为匹配键:import pandas as pd # inner模式只保留两个表都有的商品编号;outer模式保留所有商品编号 merged_df = pd.merge(df1, df2, on='article number', how='inner')筛选出等级不一致的商品编号:
# 对比等级列,提取不等的行对应的商品编号 diff_articles = merged_df[merged_df['current tier'] != merged_df['updated tier']]['article number'] # 转成列表输出结果 print(diff_articles.tolist())特殊情况处理:如果需要包含仅在单个表中存在的商品(即其中一个等级缺失),改用
outer模式并补充空值判断:merged_df = pd.merge(df1, df2, on='article number', how='outer') # 筛选等级不等或任一等级为空的情况 diff_articles = merged_df[ (merged_df['current tier'] != merged_df['updated tier']) | merged_df['current tier'].isna() | merged_df['updated tier'].isna() ]['article number']注意事项:如果等级列数据类型不一致(比如一个是数字、一个是字符串),先统一类型再对比:
merged_df['current tier'] = merged_df['current tier'].astype(str) merged_df['updated tier'] = merged_df['updated tier'].astype(str)
内容的提问来源于stack exchange,提问作者ionic
相关产品推荐
相关产品推荐

