繁体   English   中英

如何在 html 中将 pandas dataframe 显示为表格?

[英]How to display pandas dataframe as a table in html?

我正在使用 Flask 来执行此操作。 我基本上想在我的网页上显示我的 pandas dataframe 但我的网页最终显示在我的 html 页面上:

website < phone t email ablebo r de r = " 1 " c lass = " dataf r ame " > < thead > < t r style = " text - align: r ight; " > < th > < / th > < th > c 公司</th><th>网站</th><th>电话</th><th>电子邮件</th></t r></thead><tbody></tbody></tbody

这是我对 Flask 的尝试:

from backend import final_dataframe

@app.route('/results', methods=["GET", "POST"])
def results():
   return render_template('results.html',  tables=final_dataframe.to_html(), titles=final_dataframe.columns.values)

这是我的 html 文件的片段,我使用 Jinja 来显示表格:

 <div  style="width: 50%;margin-left: 25%;margin-top: 58px;">
    {% for table in tables %}
        {{titles[loop.index]}}
        {{ table|safe }}
     {% endfor %}
 </div>

更新:

这就是我在 flask 中执行 print(final_dataframe.to_html()) 时发生的情况:

<table border="1" class="dataframe">
  <thead>
    <tr style="text-align: right;">
      <th></th>
      <th>company</th>
      <th>website</th>
      <th>phone</th>
      <th>email</th>
    </tr>
  </thead>
  <tbody>
  </tbody>
</table>

好的,这是我的 backend.py 文件的问题。 似乎全局变量没有更新:

final_dataframe = pd.DataFrame(columns= ['company', 'website', 'phone', 'email'])

def someFunction(a,b):
  contact_info = pd.DataFrame(myData, columns= ['company', 'website', 'phone', 'email'])
  global final_dataframe
  final_dataframe = final_dataframe.append(contact_info, ignore_index = True)

所以基本上,当程序退出 function 时,全局变量(final_dataframe)不会更新。 然而,它在 function 内部进行了更新。

可能是因为您的模板中有一个循环,因此 html 由.to_html()返回的每个字符分隔,请尝试不使用 for 循环

<div style="width: 50%;margin-left: 25%;margin-top: 58px;">
    {{ tables|safe }}
 </div>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM