python - 从数据框中排除行,除非满足另一个列条件

标签 python pandas logic

如果行符合列表 (eligibility_criteria) 条件,我想从我的数据框中排除这些行,除非关税列以“***”开头。这是我的:

import pandas as pd

df = df[~df['eligibility'].str.contains(eligibility_criteria, na=False)] #This works

我如何添加这个“except when”限定符...

#df['tariff'].str.startswith("***")

最佳答案

如果关税以 “***” 开头,则令 E 为合格标准,S 为真。您想要排除 E unless S 的行,这与 E & ~S 相同。相反,你想保留没有这个属性的行:~(E & ~S),这和~E | 是一样的。 S:

df = df[~df['eligibility'].str.contains(eligibility_criteria, na=False) | 
         df['tariff'].str.startswith("***")]

关于python - 从数据框中排除行,除非满足另一个列条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56124738/

相关文章:

python - 当单独列表的内容发生变化时更新列表框的显示内容?

python - 将列表变成集合 - Python

python - 使用条件参数进行类型检查

python - 使用 python 数据框中的两列(值、计数)绘制直方图

Pandas 使用不同的索引并排添加数据帧

Python 随机数生成器错误

python - 在 Pandas 数据框中查找最近日期时间的索引

php - 需要有关音乐网站逻辑/显示问题的建议

java - .hasNext() 和 .next() 导致无限 while 循环

if-statement - 什么是晶体管级别的 "if"语句?