Pandas Tabellenformat

Wenn Sie noch nicht wissen, wie Sie Daten im Unterbewusstsein direkt an den Kunden übertragen können, oder im schlimmsten Fall, wenn der Text der Nachricht locker ist, benötigen Sie Informationen darüber, wie Sie den Prozess der Interpretation von Tabellen schneller und komfortabler gestalten können.



Beispielsweise verwendet Excel hierfür bedingte Formatierungen und Sparklines . In diesem Artikel erfahren Sie, wie Sie Daten mit Python und der Bibliothek visualisieren pandas: Wir verwenden die Eigenschaften DataFrame.styleund Options and settings.



Grundlegendes Rendering einrichten



Wir importieren Bibliotheken: pandaszum Arbeiten mit Daten und seabornzum Laden eines klassischen Datensatzes penguins:



import pandas as pd
import seaborn as sns


Verwenden Sie diese pd.set_optionOption, um die Ausgabe so zu konfigurieren, dass:



  • Die Anzahl der Zeilen in der Tabelle betrug nicht mehr als 5.
  • Der Text in der Zelle wurde unabhängig von der Länge vollständig wiedergegeben (dies ist praktisch, wenn die Zelle einen langen Titel oder eine lange URL hat, die Sie sehen möchten).
  • Alle Zahlen wurden mit zwei Dezimalstellen wiedergegeben.


pd.set_option('max_rows', 5)
pd.set_option('display.max_colwidth', None)
pd.set_option('display.float_format', '{:.2f}'.format)


Lesen und sehen wir uns den Datenrahmen an.



penguins = sns.load_dataset(‘penguins’)
penguins


Bild



Wenn Sie die Einstellungen auf die Standardeinstellungen zurücksetzen müssen, verwenden Sie pd.reset_option. Zum Beispiel so, wenn wir alle Einstellungen gleichzeitig aktualisieren möchten:



pd.reset_option('all')


Vollständige Liste der Eigenschaften set_option.



Einrichten der Anzeige von Daten in Tabellen



Zahlenformat, Lücken und Groß- / Kleinschreibung



Datenrahmen pandashaben eine Eigenschaft DataFrame.style, die die Anzeige des Inhalts von Zellen nach Bedingungen für Zeilen oder Spalten ändert.



, , .



(penguins
 .head(5)
 .style
 .format('{:.1f}', na_rep='-')
 .format({'species': lambda x:x.lower(),
          'island': lambda x:x.lower(),
          'sex': lambda x: '-' if pd.isna(x) else x.lower()
         })
)


Bild



, , ₽ :



(df
.style
.format({'price': '₽{:.2f}'})
)


— !



(, , )



, , , . subset.



numeric_columns = ['bill_length_mm',
                   'bill_depth_mm',
                   'flipper_length_mm',
                   'body_mass_g']


, 5 .



(penguins
 .head(5)
 .style
 .format('{:.1f}', na_rep='-')
 .format({'species': lambda x:x.lower(),
          'island': lambda x:x.lower(),
          'sex': lambda x: '-' if pd.isna(x) else x.lower()
         })
 .highlight_null(null_color='lightgrey')
 .highlight_max(color='yellowgreen', subset=numeric_columns)
 .highlight_min(color='coral', subset=numeric_columns)
)


Bild



, 5 2 (!) .



: - Adelie.



Bar chart



, Adelie .



adelie_female = (penguins[(penguins['species'] == 'Adelie') & 
                          (penguins['sex'] == 'FEMALE')]
                 .copy()
                )

adelie_female['flipper_l_var'] = ((adelie_female['flipper_length_mm']- 
                                                 adelie_female['flipper_length_mm'].mean()).round())


, 'flipper_l_var'. :



  • (subset), ;
  • (align): mid — , , . ;
  • (color). 2 : ;
  • (vmin, vmax).


set_properties , 'flipper_l_var' .



(adelie_female
 .head(5)
 .style
 .format('{:.1f}', na_rep='-')
 .format({'species': lambda x:x.lower(),
          'island': lambda x:x.lower(),
          'sex': lambda x: '-' if pd.isna(x) else x.lower()
         })
 .bar(subset=['flipper_l_var'],
      align='mid',
      color=['coral', 'yellowgreen'],
      vmin=adelie_female['flipper_l_var'].min(),
      vmax=adelie_female['flipper_l_var'].max()
     )
 .set_properties(**{'text-align': 'center'}, subset='flipper_l_var')
)


Bild



Heatmap



. , .



, .



species_stat=(penguins
             .groupby('species')
             .agg(penguins_count=('species','count'),
                  mean_bill_length=('bill_length_mm', 'mean'),
                  mean_bill_depth=('bill_depth_mm', 'mean'),
                  mean_flipper_length=('flipper_length_mm', 'mean'),
                  mean_body_mass=('body_mass_g', 'mean'),
                 )
             )


Bild



, , - , .



. , ?! -, , .



(species_stat
 .T
 .style
 .format("{:.1f}")
 .background_gradient(cmap='Blues', axis=1)
)


Bild



background_gradient :



  • (cmap): Blues. ;
  • (axis=1).




Das Formatieren von Tabellen pandasmit DataFrame.styleund Options and settingserleichtert das Leben oder verbessert zumindest die Lesbarkeit von Code und Berichten. Die Verarbeitung von Datentypen, Lücken und Registern ist natürlich besser, um sie vor der Visualisierungsphase bewusst durchzuführen.



Darüber hinaus können Sie sich mit Folgendem befassen:






All Articles