He realizado algunas búsquedas y no puedo encontrar la manera de filtrar un marco de datos df["col"].str.contains(word)
, sin embargo, me pregunto si hay una manera de hacer lo contrario: filtrar un marco de datos por el cumplido de ese conjunto. por ejemplo: a los efectos de !(df["col"].str.contains(word))
.
¿Se puede hacer esto a través de un DataFrame
método?
re.complies
y me dije que llegaría a eso más tarde. Parece que sobreajusto la búsqueda y es justo como tú dicesdf[~df.col.str.contains(word)]
devuelve una copia del marco de datos original con filas excluidas que coinciden con la palabra.Estaba teniendo problemas con el símbolo no (~) también, así que aquí hay otra forma de otro hilo de StackOverflow :
fuente
df[df["col1"].str.contains('this'|'that')==False and df["col2"].str.contains('foo'|'bar')==True]
? ¡Gracias!df = df[~df["col"].str.contains('\|')]
Puede usar Apply y Lambda para seleccionar filas donde una columna contiene cualquier cosa en una lista. Para su escenario:
fuente
Tuve que deshacerme de los valores NULL antes de usar el comando recomendado por Andy anteriormente. Un ejemplo:
Ahora ejecuta el comando:
Obtuve el siguiente error:
Primero me deshice de los valores NULL usando dropna () o fillna () y volví a intentar el comando sin ningún problema.
fuente
~df["second"].astype(str).str.contains(word)
para forzar la conversión astr
. Ver stackoverflow.com/questions/43568760/…Espero que las respuestas ya estén publicadas
Estoy agregando el marco para encontrar varias palabras y negar las del marco de datos .
Aquí
'word1','word2','word3','word4'
= lista de patrones para buscardf
= DataFramecolumn_a
= Un nombre de columna de DataFrame dffuente
Adicional a la respuesta de nanselm2, puede usar en
0
lugar deFalse
:fuente
NaN