Pandas Dataframe在网页上显示

问题描述 投票:37回答:4

我正在使用Flask,但这可能适用于许多类似的框架。

例如,我构建了一个熊猫数据框

@app.route('/analysis/<filename>')
def analysis(filename):
    x = pd.DataFrame(np.random.randn(20, 5))
    return render_template("analysis.html", name=filename, data=x)

模板analysis.html看起来像

{% extends "base.html" %}
{% block content %}
<h1>{{name}}</h1>
{{data}}
{% endblock %}

这有效,但是输出看起来很糟糕。它不使用换行符等。我玩过data.to_html()data.to_string()显示框架的最简单方法是什么?

python pandas flask
4个回答
46
投票

以下应该起作用:

@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())
                                                                # ^^^^^^^^^

检查the documentation是否有CSS样式等其他选项。

另外,您需要像这样调整模板:

{% extends "base.html" %}
{% block content %}
<h1>{{name}}</h1>
{{data | safe}}
{% endblock %}

为了告诉Jinja您正在传递标记。感谢@SeanVieira的提示。


24
投票

好吧,现在通过结合我在这里得到的提示,我已经获得了一些非常不错的结果。在实际的Python查看器中,我使用

@app.route('/analysis/<filename>')
def analysis(filename):
    x = pd.DataFrame(np.random.randn(20, 5))
    return render_template("analysis.html", name=filename, data=x)

例如我将完整的数据框发送到html模板。我的html模板基于引导程序。因此,我可以简单地写[]

{% extends "base.html" %}
{% block content %}
<h1>{{name}}</h1>
{{ data.to_html(classes="table table-striped") | safe}}
{% endblock %}

[bootstrap还有很多其他选项,请在此处查看:http://getbootstrap.com/css/#tables

Base.html本质上是从此处复制的http://blog.miguelgrinberg.com/post/the-flask-mega-tutorial-part-xii-facelift

下一个问题显然是如何绘制这样的框架。有人对Bokeh有任何经验吗?

谢谢你们马特和肖恩。

托马斯


1
投票

您可以使用enaml-web显示熊猫数据框并与之交互。


0
投票

迭代df的行

© www.soinside.com 2019 - 2024. All rights reserved.