python - 如何有效地进行多个 `is not`过滤

标签 python pandas dataframe filter

这是我的代码

df = df[df['scorecard_version'] != '9.0']
df = df[df['scorecard_version'] != '8.0']
df = df[df['scorecard_version'] != '10.0']
df = df[df['scorecard_version'] != '11.0']
df = df[df['scorecard_version'] != '11.1']

有没有更短的替代方案?

最佳答案

使用isin使用 ~ 的反转 bool 掩码:

df[~df['scorecard_version'].isin(['9.0','8.0','10.0','11.0','11.1'])]

替代解决方案 numpy.in1d :

df[~np.in1d(df['scorecard_version'].values, ['9.0','8.0','10.0','11.0','11.1'])]

关于python - 如何有效地进行多个 `is not`过滤,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50755079/

相关文章:

python - 当另一列增加/减少时添加状态列

python - 懒惰地从 PostgreSQL/Cassandra 创建 Dask DataFrame

python - pandas.tslib.Timestamp 日期匹配

python - Pyramid 网络框架 hello world 不工作

python - 在运行时分配变量?

python - np.where 多个逻辑语句 pandas

Python:使用全局变量的无效语法

python - pandas df 中的多重逻辑比较

python - 如何使 x 和 y 轴标签的文本大小以及 matplotlib 和 prettyplotlib 图形上的标题更大

python - 带有日期时间索引的 Pandas Pivot