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

如何利用Pandas DataFrame识别商品价格不匹配的错误SKU?

商品价格一致性检查操作步骤(Pandas实现)

前提假设

假设你的数据已经加载为Pandas DataFrame,命名为df,包含SKU、Amazon、eBay、Walmart、PS、SPL这些列。


1. 检查PS与SPL列的价格一致性

要求:PS和SPL同时非空时,价格必须完全匹配,不匹配的标记为错误SKU。

操作代码

# 新增一列标记PS和SPL的错误情况:同时非空且价格不等则为True
df['PS_SPL_错误'] = df[['PS', 'SPL']].notna().all(axis=1) & (df['PS'] != df['SPL'])

# 提取所有PS/SPL价格不匹配的错误SKU
ps_spl_error_skus = df[df['PS_SPL_错误']]['SKU'].tolist()
print("PS/SPL价格不匹配的SKU:", ps_spl_error_skus)

代码解释

  • df[['PS', 'SPL']].notna().all(axis=1):判断每行的PS和SPL是否都不为空
  • & (df['PS'] != df['SPL']):同时满足“都非空”且“价格不等”时,标记为错误
  • 最后通过筛选PS_SPL_错误为True的行,提取对应SKU

2. 检查Amazon/eBay/Walmart列的价格一致性

要求:这三列中只要有非空值,所有非空的价格必须一致(全空也没问题)。

操作代码

# 定义检查函数:判断一行中电商平台的非空价格是否存在不一致
def check_ecommerce_prices(row):
    # 提取当前行中电商平台列的非空价格
    valid_prices = row[['Amazon', 'eBay', 'Walmart']].dropna()
    # 当非空价格数量≥2且存在不同值时,标记为错误
    return len(valid_prices) >= 2 and valid_prices.nunique() > 1

# 新增一列标记电商平台的错误情况
df['电商平台_错误'] = df.apply(check_ecommerce_prices, axis=1)

# 提取所有电商平台价格不一致的错误SKU
ecommerce_error_skus = df[df['电商平台_错误']]['SKU'].tolist()
print("电商平台价格不匹配的SKU:", ecommerce_error_skus)

代码解释

  • row[['Amazon', 'eBay', 'Walmart']].dropna():去掉当前行中这三列的空值,只保留有效价格
  • len(valid_prices) >=2:确保至少有两个平台有价格(只有一个平台有价格时无需检查一致性)
  • valid_prices.nunique() >1:判断有效价格中是否存在不同值,是则标记错误

3. 汇总所有错误SKU

如果需要一次性查看所有有问题的SKU,可以合并两个筛选结果:

# 合并两类错误的SKU,去重后输出
all_error_skus = list(set(ps_spl_error_skus + ecommerce_error_skus))
print("所有价格不一致的错误SKU:", all_error_skus)

内容的提问来源于stack exchange,提问作者TaCh-Da

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 17:42:55