Python独学プログラミング勉強日記:11日目|複数リストからhtmlのテーブルタグを出力する仕組みを作ってみた!(Pandas)

Pythonで配列から自動的にHTMLテーブル(表)を作る方法

WordPressで最近テーブルを作ることが多いので、Pythonで自動的にテーブルのコードが作れないか、検討してみました。自分で1から考えたコードは下記になります。汚いですね。しかもかなり適当なコメントです。


正直、公開するか悩みましたが、自分の実力を後悔する為に、公開します。
ちなみに、もっと簡単で分かりやすい方法もありましたので、賢い方法も公開します、

#自力で考えたダメなコード th_List = ["no","name","etc"] td_list1 = ["1","apple","good"] td_list2 = ["2","orange","best"] td_list3 = ["3","hogehoge","hohohohoho"] def make_html_table3(thList,tdlist1,tdlist2,tdList3): code = "<table>\r\n" + "\t<tr>" + "\r\n" # Set th tags for list in thList: code = code + "\t\t<th>" + list + "</th>" + "\r\n" code = code +"\t</tr>"+ "\r\n" # Set data1 code = code + "\t<tr>" + "\r\n" for list in tdlist1: code = code + "\t\t<td>" + list + "</td>" + "\r\n" code = code +"\t</tr>" + "\r\n" # Set data2 code = code + "\t<tr>" + "\r\n" for list in tdlist2: code = code + "\t\t<td>" + list + "</td>" + "\r\n" code = code +"\t</tr>" + "\r\n" # Set data3 code = code + "\t<tr>" + "\r\n" for list in tdList3: code = code + "\t\t<td>" + list + "</td>" + "\r\n" code = code +"\t</tr>" + "\r\n" # End table code = code + "</table>" + "\r\n" return code out = make_html_table3(th_List,td_list1,td_list2,td_list3) print(out)
Code language: PHP (php)

Pandasを利用した美しいコード

pandasを利用すれば10行程度で同様のコードを作成出来ました。
自分の3時間は何だったのでしょうか・・・・・
まぁ、人生そんなもんですよね。
初めからGoogleで検索すればもっと効率良く出来ましたが
自分の頭で考えることって重要だよね??

import pandas as pd data = ["100","200","300"] name_list = ["orange","apple","meron"] etc_list = ["bad","good","best"] df = pd.DataFrame() df["Data"] = data df['Name'] = name_list df['etc'] = etc_list result = df.to_html() print(result)
Code language: JavaScript (javascript)

to_htmlは最強ですね。

シンプルだし分かりやすい。
ちなみに出力結果はこちら

<table border="1" class="dataframe"> <thead> <tr style="text-align: right;"> <th></th> <th>Name</th> <th>Value</th> <th>etc</th> </tr> </thead> <tbody> <tr> <th>0</th> <td>orange</td> <td>100</td> <td>bad</td> </tr> <tr> <th>1</th> <td>apple</td> <td>200</td> <td>good</td> </tr> <tr> <th>2</th> <td>meron</td> <td>300</td> <td>soso</td> </tr> </tbody> </table>
Code language: HTML, XML (xml)
NameValueetc
0orange100bad
1apple200good
2meron300soso

Pythonでテーブルのタグを作る時は是非参考にしてみて下さい。