在 Django 模板中循环 Pandas 表
Posted
技术标签:
【中文标题】在 Django 模板中循环 Pandas 表【英文标题】:Loop Pandas table in Django template 【发布时间】: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
作为上下文发送,但我无法循环。
甚至循环也必须在视图内完成
【参考方案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 %
【讨论】:
以上是关于在 Django 模板中循环 Pandas 表的主要内容,如果未能解决你的问题,请参考以下文章
Django - 在模板中格式化/访问 Pandas.to_dict() 数据框