Remoção de stopword com pandas

Eu gostaria de remover stopwords de uma coluna de um frame de dados. Dentro da coluna há um texto que precisa ser dividido.

Por exemplo, meu quadro de dados é assim:

ID Text 1 eat launch with me 2 go outside have fun 

Eu quero aplicar stopword na text column para que ele deve ser dividido.

Eu tentei isso:

 for item in cached_stop_words: if item in df_from_each_file[['text']]: print(item) df_from_each_file['text'] = df_from_each_file['text'].replace(item, '') 

Então minha saída deveria ser assim:

 ID Text 1 eat launch 2 go fun 

Isso significa que as palavras irrelevantes foram eliminadas. mas não funciona corretamente. Eu também tentei vice-versa de uma forma fazer o meu quadro de dados como série e, em seguida, loop através disso, mas também não funcionou.

Obrigado pela ajuda.

replace (por si só) não é um bom ajuste aqui, porque você deseja realizar uma substituição parcial de string. Você quer a substituição baseada em regex.

Uma solução simples, quando você tem um número gerenciável de palavras de parada, está usando str.replace .

 p = re.compile("({})".format('|'.join(map(re.escape, cached_stop_words)))) df['Text'] = df['Text'].str.lower().str.replace(p, '') df ID Text 0 1 eat launch 1 2 outside have fun 

Se o desempenho for importante, use uma compreensão da lista.

 cached_stop_words = set(cached_stop_words) df['Text'] = [' '.join([w for w in x.lower().split() if w not in cached_stop_words]) for x in df['Text'].tolist()] df ID Text 0 1 eat launch 1 2 outside have fun