Pandas styling Exercises: Write a Pandas program to highlight dataframe’s specific columns with different colors
Create a dataframe of ten rows, four columns with random values. Write a Pandas program to highlight dataframe’s specific columns with different colors.
Sample Solution :
Python Code :
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)
df.iloc[0, 2] = np.nan
df.iloc[3, 3] = np.nan
df.iloc[4, 1] = np.nan
df.iloc[9, 4] = np.nan
print("Original array:")
print(df)
print("\nDifferent background color:")
coldict = {'B':'red', 'D':'yellow'}
def highlight_cols(x):
#copy df to new - original data are not changed
df = x.copy()
#select all values to default value - red color
df.loc[:,:] = 'background-color: red'
#overwrite values grey color
df[['B','C', 'E']] = 'background-color: grey'
#return color df
return df
df.style.apply(highlight_cols, axis=None)
Original array:
Original array: A B C D E 0 1.0 1.329212 NaN -0.316280 -0.990810 1 2.0 -1.070816 -1.438713 0.564417 0.295722 2 3.0 -1.626404 0.219565 0.678805 1.889273 3 4.0 0.961538 0.104011 NaN 0.850229 4 5.0 NaN 1.057737 0.165562 0.515018 5 6.0 -1.336936 0.562861 1.392855 -0.063328 6 7.0 0.121668 1.207603 -0.002040 1.627796 7 8.0 0.354493 1.037528 -0.385684 0.519818 8 9.0 1.686583 -1.325963 1.428984 -2.089354 9 10.0 -0.129820 0.631523 -0.586538 NaN Different background color:
Sample Output:
Download the Jupyter Notebook from here.
Python Code Editor:
Have another way to solve this solution? Contribute your code (and comments) through Disqus.
Previous: Create a dataframe of ten rows, four columns with random values. Write a Pandas program to highlight dataframe's specific columns.
Next: Create a dataframe of ten rows, four columns with random values. Write a Pandas program to display the dataframe in table style.
What is the difficulty level of this exercise?
- Weekly Trends and Language Statistics
- Weekly Trends and Language Statistics