pandas 在Python中对同一列使用多个条件来排除行

kcwpcxri  于 2023-01-07  发布在  Python
关注(0)|答案(3)|浏览(113)

我想通过为同一列指定多个值来排除行。我有以下 Dataframe :
| 十|是|
| - ------|- ------|
| A类|1个|
| B|第二章|
| C级|1个|
| D级|1个|
| B| 1个|
| A类|1个|
希望排除取值为A和B的行。
已尝试以下代码:
第一个月
它不工作,新 Dataframe 有0行

wj8zmpe1

wj8zmpe11#

用~

df[(~df.X.isin(['A','B']))]
Out[183]: 
   X  Y
2  C  1
3  D  1
cygmwpex

cygmwpex2#

或者您可以使用来自SQL世界的pd.DataFrame.query,这样做更有意义,更容易阅读。

df.query("X not in ['A','B']")

输出:

X  Y
2  C  1
3  D  1
btqmn9zl

btqmn9zl3#

您甚至可以使用lambda尝试相同的逻辑
代码:

df[~df.apply(lambda row: row.x in ['A','B'], axis=1)]

相关问题