반응형
파이썬으로 다양한 형태의 표 만들기: 가로표, 세로표 (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 테이블 생성 가능 |
반응형
'코딩취미 > Python' 카테고리의 다른 글
Python Matplotlib 완벽 가이드: 그래프 및 표 생성 방법 (0) | 2025.03.15 |
---|---|
파이썬 Plotly로 그래프 만들기: (꺾은선, 막대, 산점도, 원형) (0) | 2025.03.14 |
파이썬으로 데이터 테이블 만들기: (리스트, 딕셔너리, pandas, sqlite) (0) | 2025.03.14 |
TensorFlow vs YOLO: 차이점과 활용법 비교 (0) | 2025.03.05 |
PySide6에서 윈도우 크기 자동 조절 기능 구현하기 (0) | 2025.03.03 |