【问题标题】:Loop Pandas table in Django template在 Django 模板中循环 Pandas 表
【发布时间】:2018-02-13 08:42:50
【问题描述】:

我有一个 Pandas 表,其中填充了我认为的值。此视图将此数据发送到我的模板。不幸的是,尽管我可以在 python shell 中循环,但我无法循环这些值。我附上我的桌子和我的尝试:

我的表(MyTable):

ID    day      data
_|___________|_____
0| 2017-01-01|100.0|
1| 2017-01-02|99.8 |
2| 2017-01-03|90.0 |

我的尝试:

{%for i, b in MyTable.itertools() %}
            <td>{{b['day']}}</td><td> {{b['data']}}</td>
{%endfor%} 

我收到以下错误消息:

Could not parse the remainder: '()' from 'MyTable.iterools()'

在 python shell(我测试的地方)中,我可以通过以下方法循环表格。 如何在 Django 模板中循环我的熊猫表?提前谢谢你。

【问题讨论】:

  • 那是模特吗??请发布您的视图和模型的代码
  • @Exprator 该表是左连接的结果:MyTable = pd.merge(day, data, how='left', on=['day', 'day'])
  • 根据您在模板中尝试执行的操作进行计算,然后将它们作为上下文发送到模板并显示它
  • 是的,我进行了计算并将MyTable 作为上下文发送,但我无法循环。
  • 甚至循环也必须在视图内完成

标签: python django pandas itertools


【解决方案1】:

正如明确记录的那样,Django 模板语言不允许()[]。函数被自动调用,点符号用于项目查找。

另外,Pandas 数据表没有itertools 方法;你可能是指itertuples,它的工作原理是这样的:

{% for b in MyTable.itertuples %}
        <td>{{ b.day }}</td><td> {{ b.data }}</td>
{% endfor %} 

【讨论】:

    【解决方案2】:

    读取您的 pandas 表数据以列出

    像这样:

    context["data"]= [{"id": 0, "day": "2017-01-01", "data": "100.0"}, {...}, {...}]
    
    return render_to_response(template_name, context)
    

    在 html 中:

    {% for d in data %}
        <h1>{{ d.id, d.day, d.data }}</h1>
    {% endfor %}
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-11-05
      • 2012-07-25
      • 1970-01-01
      • 2021-10-17
      • 1970-01-01
      • 2013-10-26
      • 2019-05-06
      相关资源
      最近更新 更多