Ausgabe
Ich möchte die Schriftart und die Hintergrundfarbe der Zelle basierend auf den Bedingungen ändern, aber mein Skript ändert jetzt nur die Hintergrund-/Zellenfarbe. Gibt es eine Möglichkeit, Text und Zelle in derselben Farbe darzustellen? Ich bin noch nicht vertraut style.applymap
, also bitte haben Sie Geduld mit mir.
import pandas as pd
import pypyodbc as odbc
def color(val):
if val == 0:
color = 'red'
elif val == 1:
color = 'green'
elif val == 3:
color = 'blue'
return f'background-color: {color}; color: {color}'
conn = odbc.connect(MyConn)
rd = pd.read_sql("SELECT * FROM TABLE", conn)
rdx = pd.pivot_table(rd, index = ['LIST'] ,columns='month', values='status',aggfunc='sum' )
rdx = rdx.style.applymap(color)
Lösung
Sie können Werte im Wörterbuch zuordnen, wenn sie übereinstimmen, sonst eine leere Zeichenfolge zurückgeben:
df = pd.DataFrame({'a':[2,0,1,3],'b':[3,0,1,3]})
def color(val):
d = {0:'red', 1: 'green', 3:'blue'}
return f'background-color: {d[val]}; color: {d[val]}' if val in d else ''
df.style.applymap(color)
Beantwortet von – jezrael
Antwort geprüft von – Mildred Charles (FixError Admin)