python - 具有多列的 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 = 通过
解决方案
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 公式。
推荐阅读
- html - CDHtmlDialog 在导航到 google 后导航到 pdf 时崩溃
- symfony - Symfony 4:如何通过命令行在 test-env 中禁用分析器
- r - R - 提高采样功能速度
- javascript - TypeScript 错误:类型“字符串”不可分配给排版的类型
- c# - ivi.visa 读取二进制块数据的问题
- mybatis - 创建一个 mybatis dao 模板来动态执行任何查询
- python - 显示两个数据框列中两个字符串之间的差异的位置,pandas
- javascript - Office.js onReady/initialize 在 Internet Explorer 上不起作用
- import - 无法打开文件“load_departments.dump”;错误:2
- javascript - 在Angular 2+中处理子组件中通过引用传递的对象