Maison  >  Article  >  interface Web  >  Comment colorer le texte et les arrière-plans dans un tableau HTML Pandas Dataframe ?

Comment colorer le texte et les arrière-plans dans un tableau HTML Pandas Dataframe ?

Linda Hamilton
Linda Hamiltonoriginal
2024-10-31 21:57:02280parcourir

How to Color Text and Backgrounds in a Pandas Dataframe HTML Table?

Coloration du texte et des arrière-plans dans un tableau HTML Pandas Dataframe Python à l'aide de styles et de CSS

Pour personnaliser l'apparence d'un tableau HTML Pandas dataframe, vous pouvez combiner l'attribut style et CSS.

Changer la couleur du texte

Pour changer la couleur du texte dans des lignes spécifiques d'un dataframe, utilisez apply() avec une fonction qui applique un style CSS aux valeurs en fonction des conditions. Par exemple, pour colorer toutes les valeurs des lignes 'MOS' avec une certaine couleur :

<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>

Modification de la couleur d'arrière-plan

Pour définir la couleur d'arrière-plan de certaines cellules , vous pouvez utiliser set_table_styles() et spécifier la propriété background_color :

<code class="python">s.set_table_styles([dict(selector='th', props=[('background-color', 'lightblue')]),
                    dict(selector='td', props=[('background-color', 'white')])])</code>

Cela définira la couleur d'arrière-plan de toutes les cellules d'en-tête sur bleu clair et le reste des cellules sur blanc.

Exemple

En combinant les techniques ci-dessus, voici un exemple de la façon de colorer à la fois le texte et les arrière-plans :

<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>

Cela produira un tableau HTML avec du texte orange en ' Lignes de MOS, en-tête bleu clair et arrière-plans d'index de niveau supérieur.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn