2016-10-22 8 views
2

공식 documentto_html(justify='left/right')을 사용하여 셀 정렬을 설정하는 옵션을 제공하며 작동합니다. 그러나 비 - 헤더 행을 정당화하는 방법이 명확하지 않습니다.팬더에서 셀 정렬을 설정하는 방법 dataframe.to_html()

나는 HTML 부분을 대체하기 위해 해킹을 사용했습니다

import pandas as pd 
df = pd.DataFrame({'looooong_col':['1,234','234,567','3,456,789'],'short_col':[123,4,56]}) 
raw_html = df.to_html() 
raw_html.replace('<tr>','<tr style="text-align: right;">') 

그래서 수정 된 HTML은 이제

<table border="1" class="dataframe"> 
    <thead> 
    <tr style="text-align: right;"> 
     <th></th> 
     <th>looooong_col</th> 
     <th>short_col</th> 
    </tr> 
    </thead> 
    <tbody> 
    <tr style="text-align: right;"> 
     <th>0</th> 
     <td>1,234</td> 
     <td>123</td> 
    </tr> 
    <tr style="text-align: right;"> 
     <th>1</th> 
     <td>234,567</td> 
     <td>4</td> 
    </tr> 
    <tr style="text-align: right;"> 
     <th>2</th> 
     <td>3,456,789</td> 
     <td>56</td> 
    </tr> 
    </tbody> 
</table> 

이며 http://htmledit.squarefree.com/에서 확인 렌더링하지만 난에 그것을 밖으로 쓸 때 HTML 파일이면 셀은 여전히 ​​왼쪽 맞춤입니다.

해결 방법?

답변

3

Styler 기능을 사용할 수 있습니다.

http://pandas.pydata.org/pandas-docs/stable/style.html

import pandas as pd 
import numpy as np 
df = pd.DataFrame(np.random.randn(6,4),columns=list('ABCD')) 
s = df.style.set_properties(**{'text-align': 'right'}) 
s.render() 

s.render는() 생성 된 CSS/HTML의 문자열을 반환합니다. 내부는 각 셀에 대해 별도의 스타일을 선언하므로 생성 된 HTML은 깨끗하지 않습니다.

+0

보다 포괄적 인 설정은 http://stackoverflow.com/a/40993135/2944092의 대답 참조 –

관련 문제