<jinja, pandas> pandasでjinjaをちょっと。
pandas
でjinja
をちょっとやってみた。
pandas
のシリーズSeries
の要素を順に並べる。
まず、import
して、jinja
のテンプレートtemplate
を作る。
In [109]: import pandas as pd In [110]: from jinja2 import Template In [111]: df = pd.DataFrame({'a':[1,2,3,4,5], 'b':[6,7,8,9,10], 'c':[11,12,13,14,15]}) In [112]: s = ''' ...: <body> ...: <ul> ...: {% for item in items %} ...: <li>{{ item[0] }}</li> ...: <li>{{ item[1] }}</li> ...: {% endfor %} ...: </ul> ...: </body> ...: '''
で、テンプレートのオブジェクト作成。
In [113]: t = Template(s)
で、レンダーrender
。
In [114]: print(t.render(items=df.items())) <body> <ul> <li>a</li> <li>0 1 1 2 2 3 3 4 4 5 Name: a, dtype: int64</li> <li>b</li> <li>0 6 1 7 2 8 3 9 4 10 Name: b, dtype: int64</li> <li>c</li> <li>0 11 1 12 2 13 3 14 4 15 Name: c, dtype: int64</li> </ul> </body>
df.items()
なので、Series
がイタレートされて渡された。
じゃ、ってことで、Series
で、.iteritem()
をする。
In [115]: print(t.render(items=df.b.iteritems())) <body> <ul> <li>0</li> <li>6</li> <li>1</li> <li>7</li> <li>2</li> <li>8</li> <li>3</li> <li>9</li> <li>4</li> <li>10</li> </ul> </body>
なるー。 わかった気がする。
マニュアル
Welcome | Jinja2 (The Python Template Engine)
参考サイト