¿Cómo soltar filas que contienen una string específica en Pandas?

En este artículo, veremos cómo soltar filas que contienen una string específica en pandas. Ahora, para soltar las filas con una string específica, podemos usar la función contains() de la biblioteca pandas. 

Sintaxis: series.str.contains(string, case=True, flags=0, na=Ninguno, regex=True)

Devoluciones  –  

Serie o índice de valores booleanos

Básicamente, esta función buscará la string en la columna dada y devolverá las filas correspondientes. Para esto, necesitamos crear un nuevo marco de datos filtrando el marco de datos usando esta función. 

Sintaxis:

df[ df[ «columna»].str.contains( «algunaString» )==Falso ]

Ejemplo : Crear marco de datos

Python3

# Importing the library
import pandas as pd
  
# Dataframe
df = pd.DataFrame({'team': ['Team 1', 'Team 1', 'Team 2',
                            'Team 3', 'Team 2', 'Team 3'],
                   'Subject': ['Math', 'Science', 'Science',
                               'Math', 'Science', 'Math'],
                   'points': [10, 8, 10, 6, 6, 5]})
  
# display
df

Salida :

Método 1: descartar las filas que contienen una string específica

En este método, vamos a encontrar las filas con la función str.contains() que básicamente tomará la string de la serie y verificará la coincidencia de la string dada, y usando un booleano estamos seleccionando las filas y configurándolas en False nos ayudará a descuidar las filas seleccionadas y mantener las filas restantes.

sintaxis:  df[df[“nombre_columna”].str.contains(“string”)==False]

Ejemplo :

En el siguiente ejemplo, vamos a seleccionar todos los equipos excepto el “Equipo 1”.

Python3

# importing the library
import pandas as pd
  
# Dataframe
df = pd.DataFrame({'team': ['Team 1', 'Team 1', 'Team 2',
                            'Team 3', 'Team 2', 'Team 3'],
                   'Subject': ['Math', 'Science', 'Science', 
                               'Math', 'Science', 'Math'],
                   'points': [10, 8, 10, 6, 6, 5]})
  
# Dropping the team 1
df = df[df["team"].str.contains("Team 1") == False]
  
df

Salida

Método 2: soltar las filas con más de una string

Igual que el método 1, seguimos los mismos pasos aquí pero con un operador bit a bit o para agregar una string adicional para buscar.

sintaxis: df = df[df[“nombre_columna”].str.contains(“string1|string2”)==False]

Ejemplo :

En el siguiente programa, vamos a soltar las filas que contienen «Equipo 1» o «Equipo 2».

Python3

# importing the library
import pandas as pd
  
# Dataframe
df = pd.DataFrame({'team': ['Team 1', 'Team 1', 'Team 2', 
                            'Team 3', 'Team 2', 'Team 3'],
                   'Subject': ['Math', 'Science', 'Science', 
                               'Math', 'Science', 'Math'],
                   'points': [10, 8, 10, 6, 6, 5]})
  
# Dropping the rows of team 1 and team 2
df = df[df["team"].str.contains("Team 1|Team 2") == False]
  
# display
df

Salida :

Método 3: Soltar filas con la string parcial dada

Aquí estamos usando la misma función con un método de unión que lleva la parte de la palabra que necesitamos buscar. 

sintaxis: 

 df[ ~df.nombre_columna.str.contains(‘|’.join([“string”])) ]

Ejemplo:

En este programa siguiente, la situación es diferente de los dos casos anteriores. Aquí vamos a seleccionar y soltar las filas con la string parcial dada. Por ejemplo, vamos a colocar las filas con «Sci» en los temas de la columna.

Python3

# importing the library
import pandas as pd
  
# Dataframe
df = pd.DataFrame({'team': ['Team 1', 'Team 1', 'Team 2', 
                            'Team 3', 'Team 2', 'Team 3'],
                   'Subject': ['Math', 'Science', 'Science',
                               'Math', 'Science', 'Math'],
                   'points': [10, 8, 10, 6, 6, 5]})
  
# Dropping the rows with "Sci"
# identify partial string
discard = ["Sci"]
  
# drop rows that contain the partial string "Sci"
df[~df.Subject.str.contains('|'.join(discard))]
  
#display
df

Producción:

Publicación traducida automáticamente

Artículo escrito por shivapriya1726 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *