Python Pandas : to_html() (DataFrame을 html로 바꾸기, convert dataframe to html)
to_html() method는 DataFrame을 html의 table tag format으로 만들어줍니다.
Syntax
DataFrame.to_html(header=True/False,
index=True/False,
na_rep=value,
border=int,
float_format=pattern)
- header
True -> html에 header를 표시해줍니다. (column name을 표시한다는 의미입니다.)
False -> html에 header를 표시하지 않습니다. (column name을 표시하지 않는다는 의미입니다.)
- index
True -> html에 index를 표시해줍니다.
False -> html에 index를 표시하지 않습니다.
- na_rep
NaN을 무엇으로 대체하여 표시할지를 의미합니다.
- border
html table에서 경계선의 두께를 정합니다.
- float_format
DataFrame에 있는 float type data에 어떤 format을 적용시킬지를 정합니다.
주의할 점은 float type에만 적용되고, 정수/문자 등의 data에는 적용되지 않습니다.
이 외에도 다양한 option들이 있으니 아래 링크를 참고하면 좋습니다.
https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.to_html.html
import pandas as pd
df_test = pd.DataFrame(
{
'col1': [1, 2, 3, 4, 5],
'col2': ['a', 'b', 'd', 'd', 'e'],
'col3': [0.12345, 0.282749, 102838.284929, 18382.29304, 281.29301]
}
)
print(df_test)
html_string = df_test.to_html()
print(html_string)
-- Result
<table border="1" class="dataframe">
<thead>
<tr style="text-align: right;">
<th></th>
<th>col1</th>
<th>col2</th>
<th>col3</th>
</tr>
</thead>
<tbody>
<tr>
<th>0</th>
<td>1</td>
<td>a</td>
<td>0.123450</td>
</tr>
<tr>
<th>1</th>
<td>2</td>
<td>b</td>
<td>0.282749</td>
</tr>
<tr>
<th>2</th>
<td>3</td>
<td>d</td>
<td>102838.284929</td>
</tr>
<tr>
<th>3</th>
<td>4</td>
<td>d</td>
<td>18382.293040</td>
</tr>
<tr>
<th>4</th>
<td>5</td>
<td>e</td>
<td>281.293010</td>
</tr>
</tbody>
</table>
아무 option을 적용하지 않고 to_html() method를 사용하였습니다.
DataFrame이 html형태로 변환되었습니다.
import pandas as pd
df_test = pd.DataFrame(
{
'col1': [1, 2, 3, 4, 5],
'col2': ['a', 'b', 'd', 'd', 'e'],
'col3': [0.12345, 0.282749, 102838.284929, 18382.29304, 281.29301]
}
)
html_string = df_test.to_html(header=True,
index=False,
float_format='{:0,.2f}'.format)
print(html_string)
-- Result
<table border="1" class="dataframe">
<thead>
<tr style="text-align: right;">
<th>col1</th>
<th>col2</th>
<th>col3</th>
</tr>
</thead>
<tbody>
<tr>
<td>1</td>
<td>a</td>
<td>0.12</td>
</tr>
<tr>
<td>2</td>
<td>b</td>
<td>0.28</td>
</tr>
<tr>
<td>3</td>
<td>d</td>
<td>102,838.28</td>
</tr>
<tr>
<td>4</td>
<td>d</td>
<td>18,382.29</td>
</tr>
<tr>
<td>5</td>
<td>e</td>
<td>281.29</td>
</tr>
</tbody>
</table>
다양한 옵션을 적용해봤습니다.
- float_format='{:0,.2f}'.format
특히 이런식으로 format을 설정하면 천단위 콤마 또는 소수점 자리를 몇자리까지 표시할지 등의 format을 정할 수 있습니다.