首页 > 解决方案 > 具有多列的 Pandas 数据框条件验证

问题描述

如何在 pandas 中配置下面的验证逻辑?

如果“EventType”字段用值“1”、“2”、“3”、“4”或“6”填充,则“Category”字段不能用值“0”填充。

我在 excel 中将这个验证配置如下,但我想不出在 pandas 中执行此操作的方法,因为我只是开始在 python 中编程。

=IF(OR(EventType=1;EventType=2;EventType=3;EventType=4;EventType=6);IF(Category=0;1;0);0)

1 = 失败 0 = 通过

标签: pythonpandas

解决方案


np.where()您可以按如下方式使用嵌套:

df['Fail/Pass'] = np.where(df['EventType'].isin([1, 2, 3, 4, 6]), np.where(df['Category'] == 0,  1, 0) , 0)

np.where()像 if-then-else 语句一样工作,并且与 Excel=IF语句类似。因此,您应该能够轻松翻译 Excel 公式。


推荐阅读