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_no0123Pitó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_no0123Pitó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 |