パンダに入って申し訳ありませんが、これは非常に簡単な質問のように思えます。 isin('X')
を使用して、中にあるリストX
である行を削除するにはどうすればよいですか? Rでは、!which(a %in% b)
と記述します。
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
Wes McKinneyのコメントにあるように
s[~s.isin(x)]
多くのオプションがあります。上記の回答のいくつかと この投稿から受け入れられた回答 を照合すると、次のことができます:
1。 df[-df["column"].isin(["value"])]
2。 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
必要なのは、isinメソッドがFalseと評価されるデータフレームのサブセットを作成することだけです。
df = df[df['Column Name'].isin(['Value']) == False]
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