pandas 数据框显示在网页上 [英] Pandas Dataframe display on a webpage
问题描述
我构造了一个熊猫数据框,例如
@ app.route('/ analysis /< filename>')
def分析(文件名):
x = pd.DataFrame(np。 random.randn(20,5))
return render_template(analysis.html,name = filename,data = x)
模板analysis.html看起来像
{%extendsbase.html%}
{%block content%}
< h1> {{name}}< / h1>
{{data}}
{%endblock%}
输出看起来很可怕。它不使用linebreaks等。
我玩过 data.to_html()
和 data.to_string()$ c
显示一个框架最简单的方法是什么?
以下内容应该可以工作:
$ $ $ $ b $ $ $
$分析$文件名
x = pd.DataFrame(np.random.randn(20,5))
return render_template(analysis.html,name = filename,data = x.to_html())
#^^^^^ ^^^^
此外,您需要调整您的模板,如下所示:
$ b
{%extendsbase.html %}
{%block content%}
< h1> {{name}}&l吨; / H1>
{{data |为了告诉Jinja你会传递给你在标记。感谢 @SeanVieira 的提示。
I am using Flask but this probably applies to a lot of similar frameworks.
I construct a pandas Dataframe, e.g.
@app.route('/analysis/<filename>')
def analysis(filename):
x = pd.DataFrame(np.random.randn(20, 5))
return render_template("analysis.html", name=filename, data=x)
The template analysis.html looks like
{% extends "base.html" %}
{% block content %}
<h1>{{name}}</h1>
{{data}}
{% endblock %}
This works but the output looks horrible. It doesn't use linebreaks etc.
I have played with data.to_html()
and data.to_string()
What's the easiest way to display a frame?
解决方案 The following should work:
@app.route('/analysis/<filename>')
def analysis(filename):
x = pd.DataFrame(np.random.randn(20, 5))
return render_template("analysis.html", name=filename, data=x.to_html())
# ^^^^^^^^^
Check the documentation for additional options like CSS styling.
Additionally, you need to adjust your template like so:
{% extends "base.html" %}
{% block content %}
<h1>{{name}}</h1>
{{data | safe}}
{% endblock %}
in order to tell Jinja you're passing in markup. Thanks to @SeanVieira for the tip.
这篇关于 pandas 数据框显示在网页上的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!