Highlight Pandas DataFrame's specific columns using apply()
Last Updated :
17 Aug, 2020
Improve
Let us see how to highlight specific columns of a Pandas DataFrame. We can do this using the
python3
Output :
Example 2 :
Python3
Output :
apply()
function of the Styler class.
Styler.apply()
Syntax : Styler.apply(func, axis = 0, subset = None, **kwargs) Parameters :Returns : Styler
- func : function should take a Series or DataFrame (depending on-axis), and return an object with the same shape. Must return a DataFrame with identical index and column labels when axis = None.
- axis : apply to each column (axis=0 or ‘index’) or to each row (axis=1 or ‘columns’) or to the entire DataFrame at once with axis = None
- subset : valid indexer to limit data to before applying the function.
- **kwargs : dict pass along to func.
Let's understand with examples:
Example 1 :# importing pandas as pd
import pandas as pd
# creating the dataframe
df = pd.DataFrame({"A" : [14, 4, 5, 4, 1],
"B" : [5, 2, 54, 3, 2],
"C" : [20, 20, 7, 3, 8],
"D" : [14, 3, 6, 2, 6],
"E" : [23, 45, 64, 32, 23]})
print("Original DataFrame :")
display(df)
# function definition
def highlight_cols(x):
# copy df to new - original data is not changed
df = x.copy()
# select all values to green color
df.loc[:, :] = 'background-color: green'
# overwrite values grey color
df[['B', 'C', 'E']] = 'background-color: grey'
# return color df
return df
print("Highlighted DataFrame :")
display(df.style.apply(highlight_cols, axis = None))

# importing pandas as pd
import pandas as pd
# creating the dataframe
df = pd.DataFrame({"Name" : ["Yash", "Ankit", "Rao"],
"Age" : [5, 2, 54]})
print("Original DataFrame :")
display(df)
# function definition
def highlight_cols(x):
# copy df to new - original data is not changed
df = x.copy()
# select all values to yellow color
df.loc[:, :] = 'background-color: yellow'
# return color df
return df
print("Highlighted DataFrame :")
display(df.style.apply(highlight_cols, axis = None))
