如何在Pandas中配置基于多列条件的DataFrame数据校验规则?
pandas实现指定数据校验逻辑的方法
你Excel里的逻辑可以直接对应到pandas的向量化条件判断,实现方式非常简单:
核心实现代码
首先读取你的数据(以读取Excel为例,读csv的话换pd.read_csv即可):
import pandas as pd # 读取你的数据文件 df = pd.read_excel("你的文件路径.xlsx")
然后按你的规则生成校验结果列(1代表校验不通过,0代表校验通过,和你Excel公式的返回值完全一致):
# 配置需要校验的EventType取值,若你的字段是数值类型,去掉列表元素的引号 target_event_types = ['1', '2', '3', '4', '6'] # 生成校验结果列 df['校验结果'] = ( (df['EventType'].isin(target_event_types)) & (df['Category'] == '0') # 若Category是数值类型,去掉0的引号 ).astype(int)
常用后续操作
- 筛选所有校验不通过的行:
invalid_rows = df[df['校验结果'] == 1]
- 统计校验不通过的数量:
invalid_count = df['校验结果'].sum()
注意事项
如果你的EventType和Category字段在Excel中是数值格式,读入pandas后会是int/float类型,判断时要去掉对应值的引号,避免类型不匹配导致判断错误。
内容的提问来源于stack exchange,提问作者Tegman
相关产品推荐
相关产品推荐

