Coloring Text and Backgrounds in a Pandas Dataframe HTML Table Python Using Styles and CSS
To customize the appearance of a pandas dataframe HTML table, you can combine the style attribute and CSS.
Changing Text Color
To change the color of text in specific rows of a dataframe, use apply() with a function that applies a CSS style to the values based on conditions. For example, to color all values in the 'MOS' rows with a certain color:
<code class="python">def highlight_MOS(s): is_mos = s.index.get_level_values(1) == 'MOS' return ['color: orange' if v else 'color: blue' for v in is_mos] s = df.style.apply(highlight_MOS)</code>
Modifying Background Color
To set the background color of certain cells, you can use set_table_styles() and specify the background_color property:
<code class="python">s.set_table_styles([dict(selector='th', props=[('background-color', 'lightblue')]), dict(selector='td', props=[('background-color', 'white')])])</code>
This will set the background color of all header cells to light blue and the rest of the cells to white.
Example
Combining the above techniques, here's an example of how to color both text and backgrounds:
<code class="python">import numpy as np import pandas as pd arrays = [['Midland', 'Midland', 'Hereford', 'Hereford', 'Hobbs','Hobbs', 'Childress', 'Childress', 'Reese', 'Reese', 'San Angelo', 'San Angelo'], ['WRF','MOS','WRF','MOS','WRF','MOS','WRF','MOS','WRF','MOS','WRF','MOS']] tuples = list(zip(*arrays)) index = pd.MultiIndex.from_tuples(tuples) df = pd.DataFrame(np.random.randn(12, 4), index=arrays, columns=['00 UTC', '06 UTC', '12 UTC', '18 UTC']) def highlight_MOS(s): is_mos = s.index.get_level_values(1) == 'MOS' return ['color: orange' if v else 'color: blue' for v in is_mos] s = df.style.apply(highlight_MOS) s.set_table_styles([dict(selector='th', props=[('background-color', 'lightblue')]), dict(selector='td', props=[('background-color', 'white')])]) s</code>
This will produce an HTML table with orange text in 'MOS' rows and light blue header and top-level index backgrounds.
The above is the detailed content of How to Color Text and Backgrounds in a Pandas Dataframe HTML Table?. For more information, please follow other related articles on the PHP Chinese website!