首页 > 解决方案 > 检测不良信息(python/pandas)

问题描述

我是 python 和 pandas 的新手,我想知道我是否能够让 pandas 过滤掉数据帧中不一致的信息。例如,假设我有一个包含 2 列、(1) 产品代码和 (2) 测量单位的数据框。第 1 列中的相同产品代码可能会重复多次,并且会有多个不同的产品代码,我想过滤掉相同产品代码的超过 1 个计量单位的产品代码。理想情况下,当这种情况发生时,过滤器将带来此类产品代码的所有实例,而不仅仅是测量单位不同的实例。为了满足我的要求,这里的真正目的是识别具有不一致测量单位的产品代码,

提前致谢!!

标签: pythonpandas

解决方案


首先,您需要一些产品代码的映射 -> 测量单位,即基本事实。你可以上传这个,或者试着聪明一点,假设产品代码最常用的计量单位是正确的,从数据中推导出来。你可以这样做

truth_mapping = df.groupby(['product_code'])['unit_of_measurement'].agg(lambda x:x.value_counts().index[0]).to_dict()

然后你可以得到一列是“正确”的测量单位

df['correct_unit'] = df['product_code'].apply(truth_mapping.get)

然后您可以过滤到没有正确映射的行:

df[df['correct_unit'] != df['unit_of_measurement']]

推荐阅读