Inkonsistente Ergebnisse mit Pandas Styler ApplyMapPython

Python-Programme
Anonymous
 Inkonsistente Ergebnisse mit Pandas Styler ApplyMap

Post by Anonymous »

Ich versuche also, einen Pandas -Datenframe für eine Streamlit -App zu stylen. Ich konnte es mit dem folgenden Code angemessen stylen: < /p>
df = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6], 'C': [7, 8, 9], 'X': [10, 11, 12], 'Y': [13, 14, 15], 'Z': [16, 17, 18]})

default_colors = {
"A": "brown",
"B": "blue",
"C": "green",
"X": "orange",
"Y": "red",
"Z": "purple"
}

def highlight_columns(val, color):
return f'color: {color}; font-weight: bold;' if val else ''

if 'A' in df.columns:
styled_df.applymap(lambda val: highlight_columns(val, default_colors['A']), subset=['A'])

if 'B' in df.columns:
styled_df.applymap(lambda val: highlight_columns(val, default_colors['B']), subset=['B'])

if 'C' in df.columns:
styled_df.applymap(lambda val: highlight_columns(val, default_colors['C']), subset=['C'])

if 'X' in df.columns:
styled_df.applymap(lambda val: highlight_columns(val, default_colors['X']), subset=['X'])

if 'Y' in df.columns:
styled_df.applymap(lambda val: highlight_columns(val, default_colors['Y']), subset=['Y'])

if 'Z' in df.columns:
styled_df.applymap(lambda val: highlight_columns(val, default_colors['Z']), subset=['Z'])
< /code>
Aber nach dem Refactoring mit: < /p>
for column in 'ABCXYZ':
if column in df.columns:
styled_df.applymap(lambda val: highlight_columns(val, default_colors[column]), subset=[column])
< /code>
Alle Spalten iteriert werden auf die endgültige Spaltenfarbe aktualisiert. In diesem Fall Spalte 'z'. Was ist hier los? Warum funktionieren die 6, wenn Aussagen gut funktionieren, aber die Schleife nicht?

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post