Set Pandas dataframe background Color and font color in Python - GeeksforGeeks

06 Aug, 2021
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.
df.style.set_properties: By using this, we can use inbuilt functionality to manipulate data frame styling from font color to background color.
Python3
# Importing the necessary libraries -->import pandas as pdimport numpy as np # Seeding random data from numpynp.random.seed(24) # Making the DataFramedf = pd.DataFrame({'A': np.linspace(1, 10, 10)})df = pd.concat([df, pd.DataFrame(np.random.randn(10, 4),                                 columns=list('BCDE'))], axis=1) # DataFrame without any stylingprint("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
# Replacing the locating value by NaN (Not a Number)df.iloc[0, 3] = np.nandf.iloc[2, 3] = np.nandf.iloc[4, 2] = np.nandf.iloc[7, 4] = np.nan # Highlight the NaN values in DataFrameprint("\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
# Highlight the Min values in each columnprint("\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
# Highlight the Max values in each columnprint("\nModified Stlying DataFrame:")df.style.highlight_max(axis=0)
Output: 
df.style.highlight_max
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
# function for set text color of positive# values in Dataframesdef color_positive_green(val):    """    Takes a scalar and returns a string with    the css property `'color: green'` for positive    strings, black otherwise.    """    if val > 0:        color = 'green'    else:        color = 'black'    return 'color: %s' % color df.style.applymap(color_positive_green)
Output: 
User-Defined Function
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 libraryimport seaborn as sns # Declaring the cm variable by the# color palette from seaborncm = sns.light_palette("green", as_cmap=True) # Visualizing the DataFrame with set precisionprint("\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
# Highlight the NaN values in DataFrame# using seaborn color paletteprint("\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
# Highlight the NaN values in DataFrame# using seaborn color palette as well as# min('lighblue') and max('blue') values# in each columnprint("\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
 
sooda367
saurabh1990aror
pandas-dataframe-program
Python pandas-dataFrame
Python Pandas-exercise
Python-pandas
Python
Writing code in comment?
Please use ide.geeksforgeeks.org,
generate link and share the link here.
Python Dictionary
Read a file line by line in Python
How to Install PIP on Windows ?
Enumerate() in Python
Iterate over a list in Python
Python String | replace()
*args and **kwargs in Python
Reading and Writing to text files in Python
Convert integer to string in Python
Create a Pandas DataFrame from Lists