使用するCSVファイル
以下のプログラムでは次のCSVファイルを使用します。
名前,英語,数学 タカシ,53,27 エミ,24,58 ボブ,98,48
プログラム
import pandas as pd import bs4 #0行目をcolumns、0列目をindexに指定する df = pd.read_csv('test_data.csv', header=None) #soupオブジェクトを作成 soup = bs4.BeautifulSoup('', 'html.parser') #tableタグを作成 table_tag = soup.new_tag('table') #行ごとに取り出す for index, data in df.iterrows(): #trタグの用意 tr_tag = soup.new_tag('tr') #行ごとのデータに対するループ for d in data: #一番上の行はthタグに収める if index == 0: th_tag = soup.new_tag('th') th_tag.string = d tr_tag.append(th_tag) else: td_tag = soup.new_tag('td') td_tag.string = d tr_tag.append(td_tag) #trタグをtableに追加 table_tag.append(tr_tag) #tableをsoupに追加 soup.append(table_tag) #書き出し with open('output.html', mode='w', encoding='utf-8') as f: f.write(str(soup))
作成したファイルをテキストエディタで開くと次のようになっています。
整列はされないことに注意しましょう。
<table><tr><th>名前</th><th>英語</th><th>数学</th></tr><tr><td>タカシ</td><td>53</td><td>27</td></tr><tr><td>エミ</td><td>24</td><td>58</td></tr><tr><td>ボブ</td><td>98</td><td>48</td></tr></table>
作成したファイルをブラウザで開くと次のようになっています。
名前 | 英語 | 数学 |
---|---|---|
タカシ | 53 | 27 |
エミ | 24 | 58 |
ボブ | 98 | 48 |