Pandas comparar dos marcos de datos fila por fila

Pandas comparar dos marcos de datos fila por fila
Un DataFrame es una estructura bidimensional hecha de filas y columnas en las que los datos se mantienen en formato tabular. Es flexible en términos de longitud y diversos datos tabulares. Los cálculos aritméticos se pueden hacer en la fila, así como en las etiquetas de la columna. Al tratar con Pandas Dataframes, es posible que deba determinar si dos marcos de datos son equivalentes o no.

Pand como método de comparación

En los pandas, el método de comparación muestra las variaciones entre dos marcos de datos. Este método compara dos marcos de datos, fila por fila y columna por columna. Luego muestra las diferencias uno al lado del otro. La función de comparación solo puede comparar los marcos de datos de una estructura similar, con los mismos nombres de fila y columna y tamaños iguales.

Sigue la siguiente sintaxis:

Discutamos brevemente los parámetros.

El "DF_2" es cualquier marco de datos para la comparación. El "Align_axis" Especifica los ejes de comparación, con 0 para filas y 1 para columnas como valor predeterminado. El "Keep_shape" El parámetro es un valor booleano. Poner esto a "verdadero" prohíbe que cualquier fila o columna sea eliminada. Para el valor predeterminado "falso", compara columnas y filas de caída que tienen todos los atributos que son los mismos para los dos marcos de datos. Otro argumento booleano es "Keep_equal". Los dos marcos de datos muestran valores iguales. Cuando esto se establece en "Verdadero", muestra las posiciones para los dos marcos de datos con los valores idénticos como NAN para la configuración predeterminada "Falso".

Ejemplo: utilizar el método de comparación de pandas

Hemos utilizado la herramienta "Spyder" aquí. Abra un nuevo archivo de Python en la herramienta "Spyder". Tenemos que "importar pandas como pd" para acceder a las características de los pandas. Es extremadamente importante tener en cuenta que las ediciones de Pandas deben ser 1.1.0 o superior. Luego hemos creado nuestro primer cuadro de datos utilizando el método pandas "PD.DataFrame () "y almacenó este DataFrame en una variable" First_Table ".

Hemos inicializado este marco de datos con tres columnas "producto", "precio" y "cantidad". Cada columna almacena la misma longitud de valores que es cinco. El "producto" de la primera columna del marco de datos "First_Table" está almacenando cinco valores de cadena que son "acrílicos", "lienzo", "lápices", "cuadernos" y "cepillos". Nuestra segunda columna "Price" almacena 5 valores int que son "260", "100", "25", "350" y "200". La última columna aquí es "cantidad" y también está almacenando valores int que son "1", "2", "5", "3" y "6". En la última línea del script, hemos empleado la función "print ()" para mostrar nuestro primer marco de datos.

Cuando presiona el botón "Ejecutar archivo" o usa la herramienta "Spyder" "Shift+Enter" Teclas en el teclado El archivo Python Fill se ejecuta. La salida que se muestra en el terminal muestra un marco de datos con 3 columnas que se crea correctamente.

Debe haber dos marcos de datos para compararlos. Ya hemos creado nuestro primer DataFrame "First_Table". Ahora tenemos que generar el segundo marco de datos. Antes de construir el segundo marco de datos, debemos tener en cuenta algunas restricciones que hemos mencionado en la introducción. Ambos marcos de datos deben tener los mismos nombres de columna, formas exactas y la misma longitud. Solo entonces podemos aplicar el método de comparación.

Para generar el segundo marco de datos, hemos copiado la primera estructura de DataFrame "First_Table" con algunos cambios. Hemos creado un marco de datos "Second_Table" y lo asignamos la salida de llamar a "DataFrame.método copy () ". El ".La función Copy () "copiará la estructura de la tabla del marco de datos" First_Table ". Queremos copiar la forma pero necesitamos modificar algunos valores en el nuevo DataFrame, por lo que usaremos el ".loc ”propiedad aquí. Esta propiedad especifica la ubicación donde desea agregar valor. Funciona por el nuevo nombre de marco de datos "Second_Table" con ".loc [0, 'precio'] = 300 ". Por lo tanto, en el índice "0" de la columna "Precio" en el DataFrame "Second_Table" colocará el valor "300".

En la ubicación del índice "1" de la columna "Precio", el valor se coloca "120". El índice LOC "2" de la columna "Precio" almacena el valor "20". Y los dos valores restantes se copiarían como es de la columna "First_Table" "Precio". Del mismo modo, en el índice loc "0" de la columna "cantidad", el valor se modifica a "2". La loca "1" de la columna "cantidad" tiene valor "3". LOC "2" de la columna de "cantidad" ha establecido el valor "6". El resto de los valores se copiarán de la columna "First_Table" de la columna "Cantidad" como es. Luego empleamos la función "print ()" para exhibir el segundo marco de datos en el terminal.

Cuando se muestra la salida, puede observar que la "Second_Table" tiene las mismas columnas que "First_Table". Los valores modificados de las columnas de "precio" y "cantidad" se implementan con éxito en las ubicaciones proporcionadas.

Aquí comienza la tarea principal. Ahora tenemos que comparar ambos Dataframes. Para esto, usaremos pandas "DataFrame.método compare () ".

Hemos invocado el "marco de datos.método compare () ". Sigue la sintaxis como el nombre del primer DataFrame "First_Table" con el ".comparar () "y entre las paréntesis de la".método compare () ". Proporcione el nombre del segundo DataFrame "Second_Table". Hemos creado una variable "comparación" para almacenar el marco de datos resultante generado al comparar "First_Table" y "Second_Table". Por último, el método "print ()" se invoca con la variable "comparación" como su parámetro para mostrar el marcado de datos resultante.

Aquí está el marco de datos de salida con la comparación de los distintos valores de Dataframes. Por defecto, deja caer los mismos valores. La comparación se realiza en cuanto a columna por su configuración predeterminada.

Ahora, si queremos dibujar una comparación en cuanto a la fila, tenemos que cambiar el valor del parámetro "alineación del eje". Su valor predeterminado es "1" que dibujará una columna de comparación. Hemos establecido el "align_axis = 0", por lo que las filas de la tabla se dibujan secuencialmente de uno mismo y de los demás. Luego llamamos a la función "print ()" para mostrar el resultado.

La imagen de salida a continuación muestra un marco de datos dibujado con una comparación de hilera.

Utilizar el ".Compare () "Argumentos del método" Mantenga la forma "para mostrar todas las entradas en la tabla de" comparación ". Por defecto, "Keep_Shape" se establece en "Falso". Si es "verdadero", todas las filas y columnas se incluyen en la tabla; de lo contrario, solo aquellos con diferentes valores se mantienen.

Puede ver que la salida muestra todas las columnas y filas, pero los mismos valores se muestran como "nan" aquí y los valores distintos se mantienen tal como están.

Ahora, si desea mostrar todos los valores sin imprimirse como "nans", debe usar el parámetro "Keep_Shape = True" junto con el parámetro "Keep_equal = True". Si "Keep_equal" se establece en "Verdadero", la salida también incluye valores iguales. Los valores iguales se muestran como "nans". La configuración predeterminada de este parámetro es "Falso."

La salida que se muestra en el terminal muestra un marco de datos con una comparación dibujada con poca fila de todos los valores de dos marcos de datos manteniendo los valores iguales y distintos.

Conclusión

En esta guía, hemos discutido la técnica de comparación de los pandas para comparar dos marcos de datos. Hemos explicado la sintaxis de los pandas ".función compare () "y todos sus parámetros. Usando la herramienta "Spyder", hemos implementado y elaborado los códigos de ejemplo en Python.