如何将 pandas DataFrame 显示到 Django 模板中?

fa2*_*007 4 python django pandas

我有一个pandasDataFrame,我想将此 DataFrame 显示到我的Django模板中。但每次代码编译成功时,我的Django网络应用程序中都不会显示任何表格。我在这里缺少什么?我的数据框看起来像这样:

在此输入图像描述

我的 html 看起来像:

<div class="row" style="margin-bottom: 20px;">
        <div class="col-md-3">

        </div>
        <div class="col-md-9">
            <div class="card" style="width: auto;">
                <div class="card-body">
                    <h3 class="h3">Total match data and Profit Mergin</h3>
                    <br>
                    <table class="table table-striped">
                        <tr>
                            <th>Total Contest</th>
                            <th>Total Entry Amount</th>
                            <th>Total Seat</th>
                            <th>Total Winning Amount</th>
                            <th>Total Team Capacity</th>
                            <th>Profit Mergin</th>

                        {% for value in final_data.iterrows %}
                            
                        <tr>
                            <td>{{ value.0 }}</td>
                            <td>{{ value.1 }}</td>
                            <td>{{ value.2 }}</td>
                            <td>{{ value.3 }}</td>
                            <td>{{ value.4 }}</td>
                            <td>{{ value.5 }}</td>
                        </tr>
                        {% endfor %}
                    </table>
                </div>
            </div>
        </div>
    </div>
Run Code Online (Sandbox Code Playgroud)

我尝试过final_data.iterrows但仍然得到相同的结果。我现在应该怎么做?

Pab*_*ero 11

这是一个基本的 html 表,在 django 模板中显示 pandas 数据框:

<table>
  <tr>
    {% for col in df.columns %}
      <td>
        {{col}}
      </td>
    {% endfor %}
  </tr>
    {% for index, row in df.iterrows %}
      <tr>
        {% for cell in row %}
          <td>
            {{cell}}
          </td>
        {% endfor %}
      </tr>
    {% endfor %}
</table>
Run Code Online (Sandbox Code Playgroud)

这个不显示索引,所以如果你想渲染它,你可以传递df.reset_index()给模板。


Cla*_*rom 5

看起来有两个选择:

  1. 保持DataFrame原样,然后在模板中使用语句。

    目前,您正在使用该pandas.DataFrame.iterrows方法,但未调用该方法。

    ()通过在 的末尾添加来调用该方法final_data.iterrows

    (另外,请确保用 关闭表格标题行</tr>。)

  2. 将其转换DataFrame为 HTML,然后在模板中使用表达式。

    正如@david-sielski提到的,考虑使用该pandas.DataFrame.to_html方法。

    看一下如何将 Pandas DataFrame 渲染为 HTML 表?

    取消注释该final_df = final_df.to_html() 行并将表格替换为{{ final_data }}

    (另外,请确保使用 kwarg 添加样式类classes。)

如果您还没有使用开发者工具来检查 HTML,请查看如何使用它。

如果有任何疑问请评论,

黏土