개요
Pandas의 to_html() 메서드를 활용하면 CSV 파일로 저장된 데이터프레임을 손쉽게 HTML 테이블 형식으로 변환할 수 있습니다. 이 글에서는 pandas.csv 파일이 이미 준비되어 있다고 가정하고, 이를 HTML 파일로 내보내는 전체 과정을 단계별로 살펴보겠습니다.
해결 방법
데이터프레임을 HTML 파일로 내보내려면 아래 단계를 순서대로 따르면 됩니다.
1단계: CSV 파일 읽기
read_csv() 메서드를 사용해 CSV 파일을 데이터프레임으로 불러옵니다.
df = pd.read_csv('pandas.csv')2단계: HTML 파일 생성
파일 객체를 사용해 쓰기 모드('w')로 pandas.html이라는 새 파일을 생성합니다.
f = open('pandas.html', 'w')3단계: 데이터프레임을 HTML 형식으로 변환
to_html() 메서드를 호출하여 데이터프레임을 HTML 테이블 문자열로 변환한 뒤, 그 결과를 변수에 저장합니다.
result = df.to_html()
4단계: 파일에 쓰기 및 닫기
파일 객체를 통해 변환된 모든 데이터를 파일에 기록하고, 작업이 끝나면 반드시 파일 객체를 닫아 리소스를 해제합니다.
f.write(result) f.close()
전체 예제 코드
아래는 위 과정을 하나로 묶은 전체 구현 예제입니다.
import pandas as pd
# CSV 파일 읽기
df = pd.read_csv('pandas.csv')
print(df)
# HTML 파일 생성 및 데이터프레임 변환
f = open('pandas.html', 'w')
result = df.to_html()
f.write(result)
f.close()실행 결과
코드를 실행하면 pandas.html 파일이 생성되며, 파일 안에는 다음과 같은 HTML 테이블이 작성됩니다.
<table border="1" class="dataframe">
<thead>
<tr style="text-align: right;">
<th></th>
<th>Id</th>
<th>Data</th>
</tr>
</thead>
<tbody>
<tr>
<th>0</th>
<td>1</td>
<td>11</td>
</tr>
<tr>
<th>1</th>
<td>2</td>
<td>22</td>
</tr>
<tr>
<th>2</th>
<td>3</td>
<td>33</td>
</tr>
<tr>
<th>3</th>
<td>4</td>
<td>44</td>
</tr>
<tr>
<th>4</th>
<td>5</td>
<td>55</td>
</tr>
</tbody>
</table>생성된 HTML 파일을 브라우저에서 열면 Id와 Data 컬럼으로 구성된 표가 깔끔하게 렌더링되어 나타납니다.
추가 팁: with 문으로 더 안전하게 처리하기
파일을 직접 열고 닫는 대신 파이썬의 with 문을 사용하면 예외 발생 여부와 관계없이 파일이 자동으로 닫히므로 더욱 안전합니다.
import pandas as pd
df = pd.read_csv('pandas.csv')
with open('pandas.html', 'w', encoding='utf-8') as f:
f.write(df.to_html())또한 한글 등 비ASCII 문자가 포함된 데이터를 다룰 때는 encoding='utf-8' 옵션을 지정하는 것이 좋습니다. 필요에 따라 to_html(index=False)처럼 인덱스를 제외하거나, classes='my-table' 옵션으로 CSS 클래스를 지정해 스타일링할 수도 있습니다.