私はいくつかの検索を行いましたが、データフレームを でフィルタリングする方法がわかりdf["col"].str.contains(word)
ませんが、逆の方法があるかどうか疑問に思っています:そのセットの補数でデータフレームをフィルタリングします。例: の効果!(df["col"].str.contains(word))
。
DataFrame
これはメソッドを介して行うことができますか?
Apply と Lambda を使用できます。
df[df["col"].apply(lambda x: word not in x)]
または、より複雑なルールを定義する場合は、AND を使用できます。
df[df["col"].apply(lambda x: word_1 not in x and word_2 not in x)]
上記の Andy が推奨するコマンドを使用する前に、NULL 値を取り除く必要がありました。例:
df = pd.DataFrame(index = [0, 1, 2], columns=['first', 'second', 'third'])
df.ix[:, 'first'] = 'myword'
df.ix[0, 'second'] = 'myword'
df.ix[2, 'second'] = 'myword'
df.ix[1, 'third'] = 'myword'
df
first second third
0 myword myword NaN
1 myword NaN myword
2 myword myword NaN
コマンドを実行しています:
~df["second"].str.contains(word)
次のエラーが表示されます。
TypeError: bad operand type for unary ~: 'float'
最初に dropna() または fillna() を使用して NULL 値を取り除き、問題なくコマンドを再試行しました。