Maison  >  Article  >  développement back-end  >  Comment colorer des cellules spécifiques en fonction de l'index de ligne et du nom de colonne dans les pandas ?

Comment colorer des cellules spécifiques en fonction de l'index de ligne et du nom de colonne dans les pandas ?

WBOY
WBOYavant
2024-02-15 16:39:03714parcourir

如何在 pandas 中给定行索引和列名称的特定单元格上色?

Contenu de la question

J'ai un dataframe df avec une forme (100,10) et un dictionnaire columns_to_color pour chaque ligne.

columns_to_color = {
  0: ['col1', 'col2', 'col9'],  # Columns 1, 2 and 9 should be colored for row 0
  1: ['col1', 'col5', 'col8'],  # Columns 1, 5 and 8 should be colored for row 1
  2: ['col3', 'col4', 'col7'],  # Columns 3, 4 and 7 should be colored for row 2
  .......

Comment colorer des cellules spécifiques pour chaque ligne de cette colonne ? Et puis sauvegarder pour exceller ?


Bonne réponse


Vous pouvez utiliser 。 style.apply() comme ceci :

df.style.apply(
    lambda row: [
        'font-weight: bold' if col in columns_to_color[row.name] else ''
        for col in row.index],
    axis=1)

(J'utilise le gras uniquement pour plus de commodité.)

Ensuite, pour convertir vers Excel, utilisez .to_excel().

Exemple :

df = pd.DataFrame({f'col{n}': range(10*n, 10*n + 3) for n in range(10)})

Après apply (dans mon idée) :

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:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer