[Python] 301 自製ライブラリpandas_exの機能追加 to_html

pandasのto_htmlではtableの境界線が黒の2重線になるため、任意の色で1重線にすることもできる関数を自製ライブラリpandas_exに追加しました。

引数を増やしすぎてもかえって不便ですから、border-colorはライブラリ内で設定するようにしています。

pandasでhtmlを作成する機能は見た目に関しては最低限の内容なので、自分で機能を増やす他ないです。

import pandas as pd

def to_html(df,html_name,encoding,header,index,border):
# header,index:True or False
# border:1(重線) or 2(重線)
    html_string = '''
    <html>
        <head>
            <meta charset={encoding}>
            <title></title>
        </head>
        <body>
            {table}
        </body>
    </html>
    '''

    with open(html_name,'w') as f:
        f.write(html_string.format(table=df.to_html(header=header,index=index),encoding=encoding))

    with open(html_name,'r') as f:
        html = f.read()

    if border == 1:
        html_new = html.replace('border="1"','border="1" style="border-collapse: collapse; border-color: #add8e6"')
    elif border == 2:
        html_new = html.replace('border="1"','border="1" style="border-collapse: separate; border-color: #add8e6"')

    with open(html_name,'w',encoding=encoding) as f:
        f.write(html_new)
import pandas as pd
from my_library import pandas_ex as pd_ex

df = pd.read_csv("test.csv",encoding='shift_JIS')

# encodingはUTF-8,headerあり,2重線でhtmlファイルを作成
pd_ex.to_html(df,"test.html","UTF-8",True,False,2)