Veamos varios métodos para resaltar los valores positivos en rojo y los valores negativos en negro en Pandas Dataframe .
Primero, hagamos un marco de datos:
Python3
# Import Required Libraries import pandas as pd import numpy as np # Create a dictionary for the dataframe dict = { 'Name': ['Sukritin', 'Sumit Tyagi', 'Akriti Goel', 'Sanskriti', 'Abhishek Jain'], 'Age': [22, 20, 45, 21, 22], 'Marks': [90, 84, -33, -87, 82] } # Converting Dictionary to # Pandas Dataframe df = pd.DataFrame(dict) # Print Dataframe print(df)
Producción:
Ahora, ven a la parte resaltada. Nuestro objetivo es resaltar los valores negativos en rojo y los valores positivos en negro.
Método 1: Usar Dataframe.style.apply() .
Sintaxis: DataFrame.style.apply(self, func, axis=0, subset=None, **kwargs)
Parámetros:
- func: debería tomar un pandas.Series o pandas.DataFrame basado en el eje y debería devolver un objeto con la misma forma.
- eje: {0 o ‘índice’, 1 o ‘columnas’, Ninguno}, por defecto 0. Aplicar a cada columna (eje=0 o ‘índice’), a cada fila (eje=1 o ‘columnas’), o a todo el DataFrame a la vez con axis=None.
- subconjunto: Conjunto de columnas o filas sobre las que se quiere llamar a la func.
- **kwargs: Pase junto a func.
Devuelve: objeto Styler.
Ejemplo 1: Resaltar texto.
Python3
# Define a function for colouring # negative values red and # positive values black def highlight_max(s): if s.dtype == np.object: is_neg = [False for _ in range(s.shape[0])] else: is_neg = s < 0 return ['color: red;' if cell else 'color:black' for cell in is_neg] # Using apply method of style # attribute of Pandas DataFrame df.style.apply(highlight_max)
Producción:
Ejemplo 2: Resaltar celdas en lugar de texto.
Python3
# Define a function which # returns the list for # df.style.apply() method def highlight_max(s): if s.dtype == np.object: is_neg = [False for _ in range(s.shape[0])] else: is_neg = s < 0 return ['background: red; color:white' if cell else 'background:black; color:white' for cell in is_neg] # Using apply method of style # attribute of Pandas DataFrame df.style.apply(highlight_max)
Producción:
Método 2: Usar el método dataframe.style.applymap() .
Sintaxis: DataFrame.style.applymap(self, func, subset=Ninguno, **kwargs)
Parámetros:
- func: toma un valor escalar y devuelve los valores escalares
- subconjunto: Conjunto de columnas o filas sobre las que se quiere llamar a la func.
- **kwargs: Pase junto a func.
Devuelve: objeto Styler.
Ejemplo 1: Resaltar texto.
Python3
# Define a function for # colouring negative values # red and positive values black def highlight_max(cell): if type(cell) != str and cell < 0 : return 'color: red' else: return 'color: black' df.style.applymap(highlight_max)
Producción:
Ejemplo 2: Resaltar celdas en lugar de texto.
Python3
# Define a function which # returns string for # applymap() method def highlight_max(cell): if type(cell) != str and cell < 0 : return 'background: red; color:black' else: return 'background: black; color: white' df.style.applymap(highlight_max)
Producción:
Nota: el método pandas.DataFrame.applymap() pasa solo una celda a la función invocable, mientras que pandas.DataFrame.apply() pasa pandas.Series a la función invocable.
Referencia: Estilismo en Pandas
Publicación traducida automáticamente
Artículo escrito por sukritinpal y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA