우와한 개발자

[Python] pandas로 Oracle 데이터 읽기 - read_sql, DataFrame

by 우와한개발자

1. pandas란?

  • 파이썬의 데이터 분석 라이브러리
  • 행과 열로 이루어진 DataFrame 자료구조로 데이터를 다룸
  • DB에서 데이터를 꺼내 분석할 때 주로 사용
pip install pandas
import pandas as pd

 

1) 읽기

메서드 설명
pd.read_sql(sql, conn) DB에서 읽기
pd.read_csv('파일.csv') CSV 파일 읽기
pd.read_excel('파일.xlsx') 엑셀 파일 읽기
pd.read_json('파일.json') JSON 파일 읽기
pd.read_html('url') 웹페이지 표 읽기

 

2) 쓰기

메서드 설명
df.to_sql('테이블명', engine) DB에 저장
df.to_csv('파일.csv') CSV 파일로 저장
df.to_excel('파일.xlsx') 엑셀 파일로 저장
df.to_json('파일.json') JSON 파일로 저장
# CSV 읽고 DB에 저장
df = pd.read_csv('직원목록.csv')
df.to_sql('employees', engine, if_exists='append', index=False)

# DB 읽고 엑셀로 저장
df = pd.read_sql("SELECT * FROM employees", conn)
df.to_excel('직원목록.xlsx', index=False)

 

2. DataFrame이란?

  • pandas의 핵심 자료구조
  • 행과 열로 이루어진 2차원 표 형태의 데이터 객체
  • 엑셀 시트, DB 테이블과 같은 구조
인덱스 EMPLOYEE_ID FIRST_NAME SALARY DEPARTMENT_ID
0 100 Steven 24000 90
1 101 Neena 17000 90
2 102 Lex 17000 90

 

3. Oracle 데이터 읽기

1) 기존 방식 vs pandas 비교

# 기존 방식
cursor = conn.cursor()
cursor.execute("SELECT * FROM employees")
rows = cursor.fetchall()
columns = [col[0] for col in cursor.description]

# pandas 방식 — 훨씬 간단
df = pd.read_sql("SELECT * FROM employees", conn)

 

2) 바인드 변수 사용

df = pd.read_sql(
    "SELECT * FROM employees WHERE department_id = :dept_id",
    conn,
    params={'dept_id': 50}
)

블로그의 정보

우와한개발자 님의 블로그

우와한개발자

활동하기