1
私はDjango HTMLに渡したパンダのデータフレームを持っています。私はDjangoのテンプレートフィルタ 'スライス'を使ってそれを印刷するときに、データフレームをサブセット化したいと思います。スライスはリストとdjangoのオブジェクトQuerySetで動作しますが、何とかpandasデータフレームで使用すると動作しません。私はなぜ、これが働くことができるのか、できないのかを知りたい。Djangoテンプレートタグ 'slice'を使ってpandasデータフレームをスライスしますか?
例:以下の例では1行スライスしますが、コードを実行すると3行すべてが表示されます。
サンプルコード:views.pyで
:
## Libraries
from django.shortcuts import render
from django.http import HttpResponse
import pandas as pd
def dataframe_view(request):
## Creating pandas dataframe
d = {'alphabet': ['a','b','c'], 'num':[1,2,3]}
df = pd.DataFrame(d)
return render(request, 'dataframe.html', {'df':df})
dataframe.html
<html>
<body>
...
<table>
<thead>
<tr>
<th>{{ df.columns.0 }} </td>
<th>{{ df.columns.1 }} </td>
<tr>
</thead>
<tbody>
{% for index, row in df.iterrows|slice:":1" %}
<tr>
<td> {{row.0}} </td>
<td> {{row.1}} </td>
</tr>
{% endfor %}
</tbody>
</table>
...
</body>
</html>
これは完全に機能します。また、{%endfor%}を追加していただきありがとうございます。 – addicted