반응형
파이썬으로 데이터 테이블 만들기: (리스트, 딕셔너리, pandas, sqlite)
데이터를 다루다 보면 테이블 형태로 정리하여 출력하는 경우가 많습니다. Python에서는 여러 가지 방법으로 데이터 테이블을 생성 및 관리할 수 있으며, 초급자부터 숙련자까지 사용할 수 있는 다양한 라이브러리가 존재합니다. 이번 글에서는 Python에서 테이블을 만드는 방법을 소개합니다.
🔹 파이썬에서 데이터 테이블을 만드는 방법
파이썬에서 데이터 테이블을 만들 수 있는 대표적인 방법은 다음과 같습니다.
방법 | 주요 라이브러리 | 특징 |
기본 리스트와 딕셔너리 | list, dict | 기본 내장 기능으로 간단한 테이블 표현 가능 |
PrettyTable | prettytable | 터미널에서 보기 좋은 텍스트 기반 테이블 |
Pandas DataFrame | pandas | 데이터 분석 및 CSV, Excel 연동 가능 |
Tabulate | tabulate | Markdown, HTML 등 다양한 출력 지원 |
SQLite 테이블 | sqlite3 | 실제 데이터베이스에 저장 가능한 테이블 |
각 방법을 초급자, 중급자, 숙련자 순으로 설명하겠습니다.
🔹 초급자: 리스트와 딕셔너리를 사용한 테이블 만들기
Python의 기본 자료형인 **리스트(List)와 딕셔너리(Dictionary)**를 사용하면
간단한 테이블을 만들고 데이터를 정리할 수 있습니다.
✅ 방법 1: 리스트를 활용한 테이블
# 리스트를 사용하여 테이블 구조 만들기
table = [
["이름", "나이", "직업"],
["김철수", 25, "개발자"],
["이영희", 30, "디자이너"],
["박지성", 35, "축구선수"]
]
# 테이블 출력
for row in table:
print("{:<10} {:<5} {:<10}".format(*row))
✅ 출력 결과
이름 나이 직업
김철수 25 개발자
이영희 30 디자이너
박지성 35 축구선수
📌 장점: 매우 간단하며 추가 라이브러리가 필요 없음
📌 단점: 정렬 및 디자인이 어렵고, 기능 확장이 제한적
🔹 중급자: PrettyTable과 Pandas 활용
Python에서는 PrettyTable과 Pandas를 사용하면
테이블을 더욱 보기 좋게 출력할 수 있습니다.
✅ 방법 2: PrettyTable을 활용한 출력
from prettytable import PrettyTable
# 테이블 생성
table = PrettyTable()
table.field_names = ["이름", "나이", "직업"]
# 데이터 추가
table.add_row(["김철수", 25, "개발자"])
table.add_row(["이영희", 30, "디자이너"])
table.add_row(["박지성", 35, "축구선수"])
# 출력
print(table)
✅ 출력 결과
+--------+----+--------+
| 이름 | 나이 | 직업 |
+--------+----+--------+
| 김철수 | 25 | 개발자 |
| 이영희 | 30 | 디자이너 |
| 박지성 | 35 | 축구선수 |
+--------+----+--------+
📌 장점: 보기 좋은 출력, 다양한 정렬 기능 제공
📌 단점: CSV, Excel 등 데이터 파일과 연동이 어려움
✅ 방법 3: Pandas DataFrame 활용
Pandas는 데이터 분석 및 파일 저장이 가능하여
CSV, Excel, SQL 등 다양한 포맷을 다룰 때 유용합니다.
import pandas as pd
# 데이터 생성
data = {
"이름": ["김철수", "이영희", "박지성"],
"나이": [25, 30, 35],
"직업": ["개발자", "디자이너", "축구선수"]
}
# DataFrame 생성
df = pd.DataFrame(data)
# 출력
print(df)
✅ 출력 결과
이름 나이 직업
0 김철수 25 개발자
1 이영희 30 디자이너
2 박지성 35 축구선수
📌 장점: 데이터 분석 및 파일 저장 가능
📌 단점: 설치가 필요하고 출력이 기본적으로 예쁘지 않음
반응형
🔹 숙련자: 데이터베이스(SQLite) 활용
SQLite를 사용하면 테이블 데이터를 데이터베이스에 저장할 수 있습니다.
✅ 방법 4: SQLite 데이터베이스 테이블 생성 및 조회
import sqlite3
# 데이터베이스 연결
conn = sqlite3.connect("example.db")
cursor = conn.cursor()
# 테이블 생성
cursor.execute("""
CREATE TABLE IF NOT EXISTS users (
id INTEGER PRIMARY KEY,
name TEXT,
age INTEGER,
job TEXT
)
""")
# 데이터 삽입
cursor.execute("INSERT INTO users (name, age, job) VALUES ('김철수', 25, '개발자')")
cursor.execute("INSERT INTO users (name, age, job) VALUES ('이영희', 30, '디자이너')")
cursor.execute("INSERT INTO users (name, age, job) VALUES ('박지성', 35, '축구선수')")
# 변경사항 저장
conn.commit()
# 데이터 조회
cursor.execute("SELECT * FROM users")
rows = cursor.fetchall()
for row in rows:
print(row)
# 연결 종료
conn.close()
✅ 출력 결과
(1, '김철수', 25, '개발자')
(2, '이영희', 30, '디자이너')
(3, '박지성', 35, '축구선수')
📌 장점: 데이터를 저장 및 관리 가능
📌 단점: SQL 문법을 알아야 하며, 설정이 필요함
🔹 추가 기능 구현 예제
✅ 1. 정렬 기능 추가 (Pandas)
# 나이를 기준으로 정렬
df_sorted = df.sort_values(by="나이", ascending=False)
print(df_sorted)
✅ 2. CSV 파일 저장 (Pandas)
df.to_csv("data.csv", index=False)
✅ 3. HTML 테이블로 변환 (Tabulate 활용)
from tabulate import tabulate
print(tabulate(df, headers="keys", tablefmt="html"))
🔹 마무리
방법 | 추천 대상 | 특징 |
리스트/딕셔너리 | 초급자 | 간단한 데이터 저장 |
PrettyTable | 초급~중급자 | 보기 좋은 출력 |
Pandas | 중급~숙련자 | 데이터 분석 및 저장 |
SQLite | 숙련자 | 데이터베이스 저장 |
반응형
'코딩취미 > Python' 카테고리의 다른 글
파이썬 Plotly로 그래프 만들기: (꺾은선, 막대, 산점도, 원형) (0) | 2025.03.14 |
---|---|
파이썬으로 다양한 형태의 표 만들기: 가로표, 세로표 (PrettyTable, Pandas, HTML) (0) | 2025.03.14 |
TensorFlow vs YOLO: 차이점과 활용법 비교 (0) | 2025.03.05 |
PySide6에서 윈도우 크기 자동 조절 기능 구현하기 (0) | 2025.03.03 |
Seaborn vs Plotly: 데이터 시각화 라이브러리 비교 (0) | 2025.03.02 |