¿Cómo comprobar si existen una o varias filas de Pandas?

Paso 1: Prepare sus datos

Primero crearemos un par de tramas de datos simples:

import pandas as pd   hired = pd.DataFrame(                     {'area': ['Python', 'DAX', 'Power BI'],                     'applicants' : [110, 100, 130],                      'hired' : [11, 10, 13]                      })

Paso 2: compruebe si existe una sola fila en su DataFrame

Supongamos que tenemos una lista simple que queremos agregar como una fila a nuestro DataFrame.

new_row = ['Python', 110, 11]

Usando el accesor loc podemos verificar si hay una fila que ya contiene los mismos valores en su DataFrame.

if hired.loc[(hired['area'] == 'Python') & (hired['applicants'] == 110) & (hired['hired'] == 11)].empty is True:     print('Your df doesn\'t contain your row') else:     print('Your df contains your row')

Paso 3: Compruebe si existen varias filas en otro DataFrame

Definamos una segunda estructura DataFrame:

applications = pd.DataFrame(                     {'area': ['Python', 'R', 'Power BI'],                     'applicants' : [110, 120, 130],                      })

Una forma sencilla de verificar si existen filas es fusionar los dos DataFrames en uno nuevo:

apps_vs_hired = pd.merge(applications,hired, on = ['area', 'applicants'], how = 'outer', indicator="exists_yes_no") 

Veamos el nuevo DataFrame:

apps_vs_hired.head()
areaapplicantshiredexists_yes_no0

1

2

3

Pitón 110 11.0 ambos
R 120 Yaya solo izquierda
BI de energía 130 13.0 ambos
DAX 100 10.0 solo_derecha

La columna exist_yes_no muestra si todas las filas en ambos DataFrames existen entre sí.

Podemos hacer que los valores de las columnas sean un poco más legibles asignándolos a valores más simples de entender usando un diccionario de Python:

exist_dict = {'left_only': 'Row exists in Applicants only',              'right_only': 'Row exists in Hired only',              'both': 'Row exists in both'}  apps_vs_hired['exists_yes_no'] = apps_vs_hired['exists_yes_no'].map(exist_dict) 

Ahora podemos echar un vistazo a nuestro DataFrame y comprender claramente si las columnas aparecen en cualquiera de los conjuntos de datos o en ambos:

areaapplicantshiredexists_yes_no0

1

2

3

Pitón 110 11.0 La fila existe en ambos
R 120 Yaya La fila existe solo en Solicitantes
BI de energía 130 13.0 La fila existe en ambos
DAX 100 10.0 La fila existe solo en Contratado