回答:
反転(〜)演算子を使用できます(これはブールデータのnotのように機能します)。
new_df = df[~df["col"].str.contains(word)]
、new_df
RHSから返されたコピーはどこにありますか。
containsは正規表現も受け入れます...
上記がValueErrorをスローする場合は、データ型が混在していることが原因である可能性が高いため、次を使用しますna=False
。
new_df = df[~df["col"].str.contains(word, na=False)]
または、
new_df = df[df["col"].str.contains(word) == False]
df[~df.col.str.contains(word)]
単語に一致する除外された行を含む元のデータフレームのコピーを返します。
not(〜)記号にも問題があったため、別のStackOverflowスレッドからの別の方法を次に示します。
df[df["col"].str.contains('this|that')==False]
df[df["col1"].str.contains('this'|'that')==False and df["col2"].str.contains('foo'|'bar')==True]
?ありがとう!
df = df[~df["col"].str.contains('\|')]
上記の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値を削除し、問題なくコマンドを再試行しました。
~df["second"].astype(str).str.contains(word)
してに強制的に変換することもできstr
ます。stackoverflow.com/questions/43568760/を
答えが投稿されているといいのですが
複数の単語を見つけてdataFrameからそれらを無効にするフレームワークを追加しています。
ここ'word1','word2','word3','word4'
=検索するパターンのリスト
df
= DataFrame
column_a
= DataFrame dfからの列名
Search_for_These_values = ['word1','word2','word3','word4']
pattern = '|'.join(Search_for_These_values)
result = df.loc[~(df['column_a'].str.contains(pattern, case=False)]
re.complies
。私は、検索をオーバーフィットし、それはあなたが言うだけのようだように見えますが。)