2017-12-30 13 views
0

this answer을 수정하고 열 사이에 간격을 늘리려고합니다.팬더 데이터 프레임의 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') 


은 BTW : 나는 소스 코드를 체크인 : render() 템플릿 html.tpl를 사용합니다. to_html()은 많은 복잡한 방법을 사용하여 HTML을 렌더링합니다 (즉, 클래스 HTMLFormatter을 사용함).

관련 문제