Resalte las columnas específicas de Pandas DataFrame usando Aplicar()
Al presentar o explicar algunos hechos utilizando Pandas DataFrame, es posible que necesitemos resaltar filas y columnas importantes de los datos proporcionados que ayuden a hacerlos más atractivos, explicables y visualmente impresionantes. Una forma de resaltar las columnas específicas de Pandas DataFrame es mediante el método integrado apply().
Programa Python para resaltar Pandas DataFrame usando apply()
Antes de pasar directamente al programa de ejemplo, es necesario analizar los conceptos básicos de Pandas y apply().
pandas
Es una biblioteca Python de código abierto que se utiliza principalmente para el análisis y manipulación de datos. Puede manejar datos relacionales y etiquetados realizando diversas operaciones en datos específicos, como limpieza, filtrado, agrupación, agregación y fusión.
método aplicar()
Se utiliza para aplicar un método definido por el usuario a cada elemento del Pandas DataFrame. Para resaltar una columna específica, primero debemos definir un método personalizado que defina las condiciones requeridas para resaltar las columnas y luego usamos el método apply() junto con el módulo de estilo para realizar la operación.
Sintaxis
style.apply(nameOfMethod)
Ejemplo 1
El siguiente ejemplo muestra la implementación práctica del método apply().
Acercarse
-
El primer paso es importar la biblioteca pandas con el nombre de referencia 'pd'.
Cree un diccionario llamado 'datos' con tres claves: 'Nombre', 'Edad' y 'Puntuación'. Cada clave tiene una lista como valor asociado.
Ahora, defina un marco de datos para representar la clave como nombre de columna y su valor como datos para esa columna.
Defina un método definido por el usuario llamado 'highlight_columns' junto con un parámetro 'col'. Este método establecerá y devolverá la variable 'color' a 'azul cielo' en el nombre de la columna 'Edad' y 'Puntuación' y 'Blanco' a 'Nombre'.
Luego, llame a este método con 'apply()' para resaltar la columna especificada y luego mostrar las columnas resaltadas.
import pandas as pd
# defining a DataFrame
data = {
'Name': ['Ram', 'Shyam', 'Mohan', 'Shrey'],
'Age': [25, 30, 35, 40],
'Score': [80, 90, 85, 95]
}
df = pd.DataFrame(data)
# a user-defined method to highlight specific columns
def highlight_columns(col):
color = 'skyblue' if col.name in ['Age', 'Score'] else 'white'
return ['background-color: {}'.format(color) for _ in col]
# calling method using apply()
styled_df = df.style.apply(highlight_columns)
# to show the highlighted column
styled_df
Producción
Ejemplo 2
En el siguiente ejemplo, resaltaremos las tres columnas usando el método apply(). Para hacerlo, sólo necesitamos establecer la variable 'color' en 'azul' sin especificar ninguna condición como hicimos en el ejemplo anterior.
import pandas as pd
# defining a DataFrame
data = {
'Name': ['Ram', 'Shyam', 'Mohan', 'Shrey'],
'Age': [25, 30, 35, 40],
'Score': [80, 90, 85, 95]
}
df = pd.DataFrame(data)
# a user-defined method to highlight specific columns
def highlight_columns(col):
color = 'blue'
return ['background-color: {}'.format(color) for _ in col]
# calling method using apply()
styled_df = df.style.apply(highlight_columns)
# to show the highlighted portion
styled_df
Producción
Ejemplo 3
En este ejemplo, resaltaremos solo los datos específicos de una columna determinada según la condición definida.
Acercarse
Como en los dos ejemplos anteriores, importaremos la biblioteca pandas y crearemos un diccionario.
-
Dentro del método 'highlight_columns()', defina múltiples condiciones para resaltar la columna usando la declaración elif.
Si el nombre de la columna es 'Edad', iteramos sobre cada valor de la columna y comprobamos si es mayor que 30. Si es así, devolvemos el color de fondo a azul.
Si el nombre de la columna es 'Puntuación', iteramos sobre cada valor de la columna y comprobamos si es mayor o igual a 90. Si es así, devolvemos el color de fondo a verde.
Luego, llame a este método con 'apply()' para resaltar la columna especificada y luego mostrar las columnas resaltadas.
import pandas as pd
# defining a DataFrame
data = {
'Name': ['Ram', 'Shyam', 'Mohan', 'Shrey'],
'Age': [25, 30, 35, 40],
'Score': [80, 90, 85, 95]
}
df = pd.DataFrame(data)
# method for highlighting specific columns
def highlight_columns(col):
if col.name == 'Age':
return ['background-color: blue' if val > 30 else '' for val in col]
elif col.name == 'Score':
return ['background-color: green' if val >= 90 else '' for val in col]
else:
return ['' for _ in col]
# calling the method using apply()
styled_df = df.style.apply(highlight_columns)
# to display the highlighted DataFrame
styled_df
Producción
Conclusión
En este artículo, hemos aprendido el uso del método apply() para resaltar los datos de columnas específicas. Se utiliza con el módulo de estilo de Pandas. También descubrimos cómo crear un Pandas DataFrame.