본문 바로가기
코딩취미/Python

파이썬으로 다양한 형태의 표 만들기: 가로표, 세로표 (PrettyTable, Pandas, HTML)

by 브링블링 2025. 3. 14.
반응형

파이썬으로 다양한 형태의 표 만들기: 가로표, 세로표 (PrettyTable, Pandas, HTML)

Python에서는 여러 가지 방법으로 가로표, 세로표, 텍스트 기반 표, HTML 표 등을 만들 수 있으며, 각 방법마다 장단점이 존재합니다. 이번 글에서는 초보자를 위한 표 만들기 가이드를 제공하며, 다양한 형태의 표를 만드는 방법과 추가 기능을 설명하겠습니다.


🔹 1. 초급자: 기본 리스트와 딕셔너리를 활용한 표 만들기

방법 1: 리스트로 가로표 만들기

# 리스트를 사용하여 가로표 만들기
table = [
    ["이름", "나이", "직업"],
    ["홍길동", 27, "엔지니어"],
    ["강감찬", 34, "마케팅"],
    ["이순신", 40, "군인"]
]

# 표 출력
for row in table:
    print("{:<10} {:<5} {:<10}".format(*row))
 

출력 결과

 
이름       나이   직업       
홍길동     27    엔지니어     
강감찬     34    마케팅   
이순신     40    군인

방법 2: 딕셔너리를 활용한 세로표 만들기

# 딕셔너리를 사용하여 세로표 만들기
data = {
    "이름": ["홍길동", "강감찬", "이순신"],
    "나이": [27, 34, 40],
    "직업": ["엔지니어", "마케팅", "군인"]
}

# 세로로 출력
for key, values in data.items():
    print(f"{key}: {', '.join(map(str, values))}")
 

출력 결과

이름: 홍길동, 강감찬, 이순신
나이: 27, 34, 40
직업: 엔지니어, 마케팅, 군인

🔹 2. 중급자: PrettyTable과 Pandas 활용

방법 3: PrettyTable을 활용한 가로표 만들기

from prettytable import PrettyTable

# 테이블 생성
table = PrettyTable()
table.field_names = ["이름", "나이", "직업"]

# 데이터 추가
table.add_row(["홍길동", 27, "엔지니어"])
table.add_row(["강감찬", 34, "마케팅"])
table.add_row(["이순신", 40, "군인"])

# 출력
print(table)
 

출력 결과

+--------+----+--------+
|  이름  | 나이 |  직업  |
+--------+----+--------+
| 홍길동 |  27 | 엔지니어 |
| 강감찬 |  34 | 마케팅 |
| 이순신 |  40 | 군인 |
+--------+----+--------+

방법 4: PrettyTable을 활용한 세로표 만들기

# PrettyTable 세로표 변환
table = PrettyTable()

# 데이터 삽입 (열 단위)
table.add_column("항목", ["이름", "나이", "직업"])
table.add_column("첫 번째", ["홍길동", 27, "엔지니어"])
table.add_column("두 번째", ["강감찬", 34, "마케팅"])
table.add_column("세 번째", ["이순신", 40, "군인"])

# 출력
print(table)
 

출력 결과

+--------+--------+--------+--------+
|  항목  | 첫 번째 | 두 번째 | 세 번째 |
+--------+--------+--------+--------+
|  이름  | 홍길동  | 강감찬  | 이순신  |
|  나이  |   27   |   34   |   40   |
|  직업  | 엔지니어 | 마케팅 | 군인   |
+--------+--------+--------+--------+
반응형

방법 5: Pandas를 활용한 가로표 만들기

import pandas as pd

# 데이터 생성
data = {
    "이름": ["홍길동", "강감찬", "이순신"],
    "나이": [27, 34, 40],
    "직업": ["엔지니어", "마케팅", "군인"]
}

# DataFrame 생성
df = pd.DataFrame(data)

# 출력
print(df)
 

출력 결과

    이름  나이      직업
0  홍길동  27   엔지니어
1  강감찬  34   마케팅
2  이순신  40   군인

방법 6: Pandas를 활용한 세로표 만들기

# 세로표 변환
df_transposed = df.set_index("이름").T
print(df_transposed)
 

출력 결과

      홍길동  강감찬  이순신
나이    27   34   40
직업  엔지니어  마케팅  군인

🔹 3. 숙련자: HTML 테이블 및 데이터베이스 활용

방법 7: Tabulate를 활용한 HTML 테이블 변환 (가로표)

from tabulate import tabulate

# 표 데이터 생성
data = [
    ["홍길동", 27, "엔지니어"],
    ["강감찬", 34, "마케팅"],
    ["이순신", 40, "군인"]
]

# HTML 표로 변환
html_table = tabulate(data, headers=["이름", "나이", "직업"], tablefmt="html")

print(html_table)

방법 8: Tabulate를 활용한 HTML 테이블 변환 (세로표)

# 데이터 변환
data_dict = {
    "항목": ["이름", "나이", "직업"],
    "첫 번째": ["홍길동", 27, "엔지니어"],
    "두 번째": ["강감찬", 34, "마케팅"],
    "세 번째": ["이순신", 40, "군인"]
}

# HTML 세로표 변환
html_table = tabulate(data_dict, headers="keys", tablefmt="html")

print(html_table)

🔹 마무리

방법 추천 대상 특징
리스트/딕셔너리 초급자 간단한 표 만들기 가능
PrettyTable 초급~중급자 보기 좋은 터미널 출력 지원
Pandas 중급~숙련자 데이터 분석 및 저장 가능
Tabulate 숙련자 HTML, Markdown 테이블 생성 가능
반응형