Python Pandas DataFrame如何筛选不满足指定组合条件的数据行
pandas 反向筛选排除指定组合条件行的实现方法
要筛选出不满足「lIQSPricingStatus等于0且lIQSRevReq等于2」组合条件的行,核心是对原有布尔判断逻辑取反,pandas 中使用~运算符实现布尔值的按位取反,有两种常用实现方式:
方法1:直接对原条件整体取反(推荐,性能最优)
将原有联合条件整体用括号包裹,外层加~取反即可:
df_not_quickshipped_approved = df_price_unlockeditems[~((df_price_unlockeditems['lIQSPricingStatus'] == 0) & (df_price_unlockeditems['lIQSRevReq'] == 2))]
注意:必须把原有联合条件作为整体包裹在括号内,否则受运算符优先级影响,
~只会作用于第一个判断条件,导致逻辑错误。
方法2:基于已有筛选结果删除对应行
如果已经提前生成了符合条件的子表df_quickshipped_approved,可以直接通过索引删除对应行:
df_not_quickshipped_approved = df_price_unlockeditems.drop(df_quickshipped_approved.index)
内容的提问来源于stack exchange,提问作者Ankit Pandey
相关产品推荐
相关产品推荐

