Dre*_*ewH 56 python filtering pandas
对不起只是进入熊猫,这似乎应该是一个非常直截了当的问题.我如何使用isin('X')删除的行是在列表中X?在RI会写!which(a %in% b).
bmu*_*bmu 64
您可以使用numpy.logical_not反转返回的布尔数组isin:
In [63]: s = pd.Series(np.arange(10.0))
In [64]: x = range(4, 8)
In [65]: mask = np.logical_not(s.isin(x))
In [66]: s[mask]
Out[66]:
0 0
1 1
2 2
3 3
8 8
9 9
Run Code Online (Sandbox Code Playgroud)
正如Wes McKinney的评论中所给出的,你也可以使用
s[~s.isin(x)]
Run Code Online (Sandbox Code Playgroud)
Jon*_*oks 63
你有很多选择.整理上面的一些答案和这篇文章中你接受的答案你可以做到:
1.2 df[-df["column"].isin(["value"])]
. df[~df["column"].isin(["value"])]
3. df[df["column"].isin(["value"]) == False]
4.df[np.logical_not(df["column"].isin(["value"]))]
注意:对于您需要的选项4 import numpy as np
atm*_*atm 13
您所要做的就是创建数据帧的子集,其中isin方法的计算结果为False:
df = df[df['Column Name'].isin(['Value']) == False]
Run Code Online (Sandbox Code Playgroud)
您可以使用以下DataFrame.select方法:
In [1]: df = pd.DataFrame([[1,2],[3,4]], index=['A','B'])
In [2]: df
Out[2]:
0 1
A 1 2
B 3 4
In [3]: L = ['A']
In [4]: df.select(lambda x: x in L)
Out[4]:
0 1
A 1 2
Run Code Online (Sandbox Code Playgroud)