53 votes

Comment afficher un dataframe pandas dans une table HTML flask existante?

Cela peut sembler une question noob, mais je suis coincé avec cela car Python n'est pas l'un de mes meilleurs langages.

J'ai une page html avec une table à l'intérieur, et je voudrais y montrer un dataframe pandas. Quelle est la meilleure façon de le faire? Utilisez pandasdataframe.to_html?

py

 from flask import Flask;
import pandas as pd;
from pandas import DataFrame, read_csv;

file = r'C:\Users\myuser\Desktop\Test.csv'
df = pd.read_csv(file)
df.to_html(header="true", table_id="table")

html

 <div class="table_entrances" style="overflow-x: auto;">

  <table id="table">

    <thead></thead> 
    <tr></tr>

  </table>

</div>

6voto

mikelowry Points 585

Pour ceux qui recherchent un exemple simple / succinct de prendre un Pandas df et de se transformer en une table Flask / Jinja (c'est la raison pour laquelle je me suis retrouvé sur cette question):

APP.PY - USINE D'APPLICATION:

 ## YOUR DF LOGIC HERE 

@app.route("/")
def home():
    return render_template('index.html' column_names=df.columns.values, row_data=list(df.values.tolist()), zip=zip)

Votre modèle statique (par exemple index.html)

  <table>
        <thead>

          <tr>
            {% for col in column_names %}
            <th>
            
              {{col}}
             
            </th>
            {% endfor %}
          </tr>

        </thead>
        <tbody>
          {% for row in row_data %}
          <tr>
            {% for col, row_ in zip(column_names, row) %}
            <td>{{row_}}</td>
            {% endfor %}
          </tr>
          {% endfor %}

         
        </tbody>
  
      </table>
   

4voto

Biarys Points 401

Pour moi, j'utilise la boucle for de Jinja

 {% for table in tables %}
            {{titles[loop.index]}}
            {{ table|safe }}
{% endfor %}

ne fonctionnait pas car il imprimait simplement chaque caractère 1 par 1. Je devais simplement utiliser

 {{ table|safe }}

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X