web-dev-qa-db-fra.com

Exporter pandas Tableau stylisé vers un fichier image

Le code ci-dessous lorsqu'il est exécuté dans le cahier jupyter rend un tableau avec un format de dégradé de couleurs que je voudrais exporter vers un fichier image.

L'objet 'styled_table' résultant que le bloc-notes affiche est de type pandas.io.formats.style.Styler.

Je n'ai pas trouvé de moyen d'exporter le Styler vers une image.

J'espère que quelqu'un pourra partager un exemple de travail d'exportation, ou me donner quelques conseils.

import pandas as pd
import seaborn as sns

data = {('count', 's25'): 
       {('2017-08-11', 'Friday'): 88.0,
        ('2017-08-12', 'Saturday'): 90.0,
        ('2017-08-13', 'Sunday'): 93.0},
        ('count', 's67'): 
       {('2017-08-11', 'Friday'): 404.0,
        ('2017-08-12', 'Saturday'): 413.0,
        ('2017-08-13', 'Sunday'): 422.0},
        ('count', 's74'): 
       {('2017-08-11', 'Friday'): 203.0,
        ('2017-08-12', 'Saturday'): 227.0,
        ('2017-08-13', 'Sunday'): 265.0},
        ('count', 's79'): 
       {('2017-08-11', 'Friday'): 53.0,
        ('2017-08-12', 'Saturday'): 53.0,
        ('2017-08-13', 'Sunday'): 53.0}}

table = pd.DataFrame.from_dict(data)
table.sort_index(ascending=False, inplace=True)

cm = sns.light_palette("seagreen", as_cmap=True)
styled_table = table.style.background_gradient(cmap=cm)
styled_table

enter image description here

17
user1243477

Comme mentionné dans les commentaires, vous pouvez utiliser la propriété render pour obtenir un code HTML de la table stylisée:

html = styled_table.render()

Vous pouvez ensuite utiliser un package qui convertit le HTML en une image. Par exemple, IMGKit: Python HTML pour wrapper IMG . Gardez à l'esprit que cette solution nécessite l'installation de wkhtmltopdf , une commande outil de ligne pour rendre HTML en PDF et divers formats d'image. Tout est décrit dans la page IMGKit.

Une fois que vous avez cela, le reste est simple:

import imgkit
imgkit.from_string(html, 'styled_table.png')
13
Shovalt