2017-12-30 74 views
0

this answerを変更して、列間の間隔を広げようとしています。pandasデータフレームのhtmlエクスポートでスペースを設定するにはどうすればよいですか?

import pandas as pd 

df = pd.DataFrame({'A': [1,10], 
        'B': ['B','BBBBBB'], 
        'C': [0,1000], 
        'D': ['D','DDDDDD']}) 

#https://stackoverflow.com/a/5667535/3014199 
spacing = dict(selector="table",props=[('border-collapse', 'separate'), 
             ('border-spacing', '100px 500px')]) 

# Style 
result=df.style.set_properties(subset=df.columns[[0,2]], **{'text-align':'right'})\ 
       .set_properties(subset=df.columns[[1,3]], **{'text-align':'left'})\ 
       .set_table_styles([spacing]) 

print(result.render(),file=open('test.html','w')) 

しかし、ばかばかしい値にもかかわらず、列はそれ以上離れて見えません。

'padding-right':'10px',set_propertiesが動作するようですが、私は正しいことをしたいです。

(また、どのように私はインデックスを抑制することができ、それは.to_htmlためindex=Falseだったが、どこここでそれを置くために?)

答えて

1

あなたは<table></table>にプロパティを割り当てることselector="table"をスキップする必要があります。

selector="table"でテーブル内テーブル<table><table></table></table>に割り当てます。


あなたは、ヘッダーをスキップする

result.render(head=[])` 

を使用するが、それでもあなたは<thread>

を非表示にすることができ

dict(selector="thead", props = [('display', 'none')]) 

を使用して'border-spacing'

を使用するときに、他の要素を移動<thread>があることができます

スキップhead=[]も使用できます。ヘッダーはファイルに保存されますが、表示されません。ところで


import pandas as pd 
import webbrowser 


df = pd.DataFrame({ 
     'A': [1, 10], 
     'B': ['B', 'BBBBBB'], 
     'C': [0, 1000], 
     'D': ['D', 'DDDDDD'], 
    }) 

styles = [ 
    dict(
     props=[ 
      ('border-collapse', 'separate'), 
      ('border-spacing', '10px 50px') 
     ] 
    ), 
    dict(
     selector="thead", 
     props = [('display', 'none')] 
    ) 
]   

result = df.style.set_properties(subset=df.columns[[0,2]], **{'text-align':'right'})\ 
       .set_properties(subset=df.columns[[1,3]], **{'text-align':'left'})\ 
       .set_table_styles(styles) 

with open('test.html', 'w') as f: 
    f.write(result.render(head=[])) 

webbrowser.open('test.html') 

:私は、ソースコードでチェック:render()テンプレートhtml.tplを使用しています。 to_html()は、HTMLをレンダリングするために非常に複雑なメソッドを使用します(つまり、クラスHTMLFormatterを使用します)。

関連する問題