Estilo de marco de datos de Pandas usando Pandas.Styler

Contenidos

Este artículo fue publicado como parte del Blogatón de ciencia de datos

Introducción

Matriz bidimensional o una tabla con filas y columnas. Los DataFrames se utilizan más ampliamente en ciencia de datos, aprendizaje automático, computación científica y muchos otros campos como minería de datos, análisis de datos, toma de decisiones y muchos más.

Pandas DataFrames están en formato tabular y también podemos aplicar estilos sobre estos DataFrames para hacerlos más interactivos y fáciles de entender. Por ejemplo, si queremos resaltar cualquier valor o tupla en particular presente en el DataFrame, podemos diseñarlo con la ayuda de la clase de estilo de Pandas DataFrame.

Estilo Pandas DataFrame

Podemos aplicar cualquier tipo de formato condicional al DataFrame y visualizar el estilo de un DataFrame dependiendo de la condición de los datos dentro, usando la propiedad DataFrame.Style. Esta propiedad devuelve pandas. Objeto Styler que tiene varias formas útiles para formatear datos y mostrar DataFrames.

El estilo se logra mediante CSS. Escribiremos «funciones de estilo» que se tomarían como escalares (valores únicos que representan una unidad de datos), DataFrame o serie, y devolveremos indexado como DataFrames o Series junto con pares «atributo: valor» de CSS para esos valores.

Estas funciones se pasan gradualmente a la clase Styler que recopila todos los estilos a través de las funciones antes de renderizar.

Entendamos los diversos estilos para agregar a Pandas DataFrame uno por uno:

Por ejemplo, crearemos un DataFrame que contenga el resultado de los estudiantes como sus Nombres, Materia y Marcas. Aplicaremos los distintos tipos de estilos al DataFrame y a sus valores. Empecemos.

Configuración del estilo de la tabla DataFrame

Para agregar estilo a la tabla usaremos el método set_table_style () de la clase Styler en el módulo Pandas. Veamos el ejemplo:

#importing the pandas module
import pandas as pd
#creating a simple DataFrame
Result = {'Name': ['Ram', 'Shyam', 'David', 'Albert', 'Riya', 'Jiya', 'Tarun'],
          'Subject': ['Physics', 'Maths', 'Chemistry', 'History', 'Maths', 'English', 'Civics'],
      'Marks': [80, 90, 87, 65, 92, 89, 56]}
df = pd.DataFrame(Result)
#Show df
df
#adding color to border of table
df.style.set_table_styles([{'selector' : '','props' : [('border','5px solid green')]}])

Producción:

350771-2834583
562292-5233323

En el ejemplo, podemos ver que se aplica el color del borde. Y al ver el código también entendimos que el estilo se aplica en forma de CSS como aplicamos CSS para cualquier página HTML.

Aplicar color de fondo a DataFrame

Para aplicar el color de fondo al DataFrame usaremos el método Styler.set_properties. Veamos el ejemplo:

#importing the pandas module
import pandas as pd
#creating a simple DataFrame
Result = {'Name': ['Ram', 'Shyam', 'David', 'Albert', 'Riya', 'Jiya', 'Tarun'],
          'Subject': ['Physics', 'Maths', 'Chemistry', 'History', 'Maths', 'English', 'Civics'],
      'Marks': [80, 90, 87, 65, 92, 89, 56]}
df = pd.DataFrame(Result)
#applying backgound color
df.style.set_properties(**{'background-color': 'black',
                           'color': 'cyan',
                           'border-color': 'white'})

Producción:

932453-9279882

En este ejemplo, el color de fondo se establece en negro, el color de fuente se establece en cian y el color del borde es blanco. Nuevamente, el código está escrito en formato CSS.

Destacando los valores específicos:

También podemos resaltar cualquier valor específico presente en el DataFrame con estilo. Me gusta, agregue un color específico al valor o en su fondo. En este ejemplo, destacaremos las notas mínimas y máximas de los alumnos. Veamos el ejemplo:

#importing the pandas module
import pandas as pd
#creating a simple DataFrame
Result = {'Name': ['Ram', 'Shyam', 'David', 'Albert', 'Riya', 'Jiya', 'Tarun'],
          'Subject': ['Physics', 'Maths', 'Chemistry', 'History', 'Maths', 'English', 'Civics'],
      'Marks': [80, 90, 87, 65, 92, 89, 56]}
df = pd.DataFrame(Result)

#applying highlight_max()
df.style.highlight_max()
#applying highlight_min()
df.style.highlight_min()

Producción:

662175-3484552
Marcas más altas
115494-6148878
Marcas más bajas

Podemos ver que la calificación más alta es 92 dada a Ria en Matemáticas y la calificación más baja es 56 otorgada a Tarun en Educación Cívica. Las operaciones max y min solo se pueden aplicar a columnas numéricas.

Agregar gráficos de barras en el DataFrame:

Podemos agregar gráficos de barras en el DataFrame dependiendo de los valores de la columna. En este ejemplo, tenemos información sobre los estudiantes como Nombre, Edad, Altura y Peso. Agregaremos un gráfico de barras a las columnas numéricas. Veamos el ejemplo:

#importing the pandas module
import pandas as pd
#creating a simple DataFrame
Info = {'Name': ['Ram', 'Shyam', 'David', 'Albert', 'Riya', 'Jiya', 'Tarun'],
        'Age': [20, 23, 25, 20, 26, 22, 19],
        'Height': [5.8, 5.3, 5.0, 5.6, 5.5, 5.7, 5.0],
        'Weight': [52, 56, 60, 59, 61, 55, 50]}
df = pd.DataFrame(Info)
#Show df
df
#adding bar chart
df.style.bar(subset=['Age', 'Height', 'Weight'], color="lawngreen")

Producción:

607876-4505880
459009-8757113

Los gráficos de barras se agregan según los valores de las columnas.

Agregar fondo degradado a DataFrame:

También agregamos colores degradados al fondo del DataFrame. Para agregar colores degradados, también tenemos que importar el módulo seaborn. Veamos el ejemplo:

#importing the pandas module
import pandas as pd
#creating a simple DataFrame
Info = {'Name': ['Ram', 'Shyam', 'David', 'Albert', 'Riya', 'Jiya', 'Tarun'],
        'Age': [20, 23, 25, 20, 26, 22, 19],
        'Height': [5.8, 5.3, 5.0, 5.6, 5.5, 5.7, 5.0],
        'Weight': [52, 56, 60, 59, 61, 55, 50]}
df = pd.DataFrame(Info)
#importing seaborn module
import seaborn as sns
#getting the color palette
cm = sns.light_palette("orange", as_cmap=True)

#applying on dataframe

df.style.background_gradient (cmap = cm)

Output:
150457-4959241

El estilo de color degradado agregado al fondo del DataFrame.

En este blog, hemos visto varios estilos que se pueden agregar a un DataFrame para una visualización más interactiva de DataFrames. Déjeme entender si hay algún comentario o retroalimentación.

Gracias por leer.

Los medios que se muestran en este artículo no son propiedad de DataPeaker y se utilizan a discreción del autor.

Suscribite a nuestro Newsletter

No te enviaremos correo SPAM. Lo odiamos tanto como tú.