Set Pandas dataframe background Color and font color in Python
As we know, the basic idea behind styling is to make more impactful for the end-user readability. We can make changes like the color and format of the data visualized in order to communicate insight more efficiently. For the more impactful visualization on the pandas DataFrame, generally, we DataFrame.style property, which returns styler object having a number of useful methods for formatting and visualizing the data frames.
Using DataFrame.style property
- df.style.set_properties: By using this, we can use inbuilt functionality to manipulate data frame styling from font color to background color.
Python3
import pandas as pd
import numpy as np
np.random.seed( 24 )
df = pd.DataFrame({ 'A' : np.linspace( 1 , 10 , 10 )})
df = pd.concat([df, pd.DataFrame(np.random.randn( 10 , 4 ),
columns = list ( 'BCDE' ))], axis = 1 )
print ( "Original DataFrame:\n" )
print (df)
print ( "\nModified Stlying DataFrame:" )
df.style.set_properties( * * { 'background-color' : 'black' ,
'color' : 'green' })
|
Output:
df.style.set_properties
- df.style.highlight_null : With the help of this, we can highlight the missing or null values inside the data frame.
Python3
df.iloc[ 0 , 3 ] = np.nan
df.iloc[ 2 , 3 ] = np.nan
df.iloc[ 4 , 2 ] = np.nan
df.iloc[ 7 , 4 ] = np.nan
print ( "\nModified Stlying DataFrame:" )
df.style.highlight_null(null_color = 'red' )
|
Output:
df.style.highlight_null
- df.style.highlight_min : For highlighting the minimum value in each column throughout the data frame.
Python3
print ( "\nModified Stlying DataFrame:" )
df.style.highlight_min(axis = 0 )
|
Output:
df.style.highlight_min
- df.style.highlight_max : For highlighting the maximum value in each column throughout the data frame.
Python3
print ( "\nModified Stlying DataFrame:" )
df.style.highlight_max(axis = 0 )
|
Output:
df.style.highlight_max
Using User-defined Function
- We can modify DataFrame using a user-defined function: With the help of this function, we can customizing the font color of positive data values inside the data frame.
Python3
def color_positive_green(val):
if val > 0 :
color = 'green'
else :
color = 'black'
return 'color: %s' % color
df.style.applymap(color_positive_green)
|
Output:
User-Defined Function
Using Seaborn Library
- Using color palette for gradient fill in DataFrame: By importing the light palette of colors from the seaborn library, we can map the color gradient for the background of the data frame.
Python3
import seaborn as sns
cm = sns.light_palette( "green" , as_cmap = True )
print ( "\nModified Stlying DataFrame:" )
df.style.background_gradient(cmap = cm).set_precision( 2 )
|
Output:
Seaborn Color Palette
- Using color palette with highlight null or missing values: Here, we highlight the NaN values in red color with gradient color palette of seaborn.
Python3
print ( "\nModified Stlying DataFrame:" )
df.style.background_gradient(cmap = cm).set_precision( 2 ).highlight_null( 'red' )
|
Output:
Seaborn Color Palette with highlight_null
- Assemble Seaborn properties with DataFrame.style property: Customizing the seaborn color palette with highlight properties of a data frame for more impactful data visualization.
Python3
print ( "\nModified Stlying DataFrame:" )
df.style.background_gradient(cmap = cm).set_precision( 2 ).highlight_null( 'red' ).highlight_min(axis = 0 , color = 'lightblue' ).highlight_max(axis = 0 , color = 'blue' )
|
Output:
Seaborn Color Palette with diff. highlight properties
Last Updated :
06 Aug, 2021
Like Article
Save Article
Share your thoughts in the comments
Please Login to comment...