Eu fiz algumas pesquisas e não consigo descobrir como filtrar um dataframe df["col"].str.contains(word)
, no entanto, estou me perguntando se existe uma maneira de fazer o inverso: filtrar um dataframe pelo elogio desse conjunto. por exemplo: para o efeito de !(df["col"].str.contains(word))
.
Isso pode ser feito através de um DataFrame
método?
re.complies
e disse a mim mesmo que chegaria a isso mais tarde. Parece que eu super ajustei a pesquisa e é exatamente como você dizdf[~df.col.str.contains(word)]
retorna uma cópia do quadro de dados original com linhas excluídas correspondentes à palavra.Eu estava tendo problemas com o símbolo not (~) também, então aqui está outra maneira de outro thread do StackOverflow :
fonte
df[df["col1"].str.contains('this'|'that')==False and df["col2"].str.contains('foo'|'bar')==True]
? Obrigado!df = df[~df["col"].str.contains('\|')]
Você pode usar o Apply e o Lambda para selecionar linhas em que uma coluna contém qualquer coisa em uma lista. Para o seu cenário:
fonte
Eu tive que me livrar dos valores NULL antes de usar o comando recomendado por Andy acima. Um exemplo:
Agora executando o comando:
Estou tendo o erro a seguir:
Eu me livrei dos valores NULL usando dropna () ou fillna () primeiro e tentei o comando novamente sem nenhum problema.
fonte
~df["second"].astype(str).str.contains(word)
para forçar a conversão parastr
. Veja stackoverflow.com/questions/43568760/…Espero que as respostas já estejam postadas
Estou adicionando a estrutura para encontrar várias palavras e negar as do dataFrame .
Aqui
'word1','word2','word3','word4'
= lista de padrões a serem pesquisadosdf
= DataFramecolumn_a
= Um nome de coluna do DataFrame dffonte
Adicional à resposta do nanselm2, você pode usar em
0
vez deFalse
:fonte
NaN