본문 바로가기

수업내용 정리

0504 DB, 파이썬 수업 내용 최종 정리 - 엑셀 다루기, vscode를 활용한 DB 다루기

1. 엑셀 다루기 

1. 용어 설명

* openpyxl

 

openpyxl은 파이썬에서 엑셀 파일을 다루기 위한 라이브러리입니다. 

이 라이브러리를 사용하면 파이썬 코드로 엑셀 파일을 읽거나 쓸 수 있습니다. 

엑셀 파일을 다루는데 필요한 다양한 기능을 제공하며, 특히 대용량의 데이터를 처리할 때 효율적입니다. 

 

openpyxl은 엑셀 파일의 셀, 시트, 행, 열 등을 객체로 다룰 수 있어서, 엑셀 파일을 다루는데 유용합니다.

이 라이브러리를 사용하면 파이썬에서 엑셀 파일을 다루는 일을 쉽게 할 수 있습니다.

예를 들어, 엑셀 파일에서 데이터를 읽어와서 그래프를 그리거나,

엑셀 파일에 데이터를 쓰는 등의 작업을 쉽게 할 수 있습니다.

openpyxl은 파이썬 2.7과 3.x를 모두 지원합니다.

또한 오픈소스 라이브러리이므로 무료로 사용할 수 있습니다.

따라서 파이썬에서 엑셀 파일을 다룰 때 openpyxl을 사용하는 것이 좋습니다.

 

 

2. 실습 - 엑셀 다루기

 

1) 워크 시트 쓰기

 

#%%
#엑셀 다루기
from openpyxl import Workbook
# 엑셀 파일 쓰기
wb = Workbook()

# %%
# 워크 시트 쓰기
ws1 = wb.create_sheet("새워크시트")

# %%
# 엑셀 파일 저장
wb.save('wb.xlsx')

# %%
# 워크 시트 쓰기 - 기본값 맨 뒤에 생성
# 맨 처음에 생성
ws2 = wb.create_sheet("시트2",0)


# %%
# 끝에서 두번째 생성
ws3 = wb.create_sheet("시트3",-1)

# %%
# 엑셀 파일 저장
wb.save('wb.xlsx')

 

 

2) 시트 이름 확인

 

# %%
# 시트 이름 확인
wb.sheetnames

# %%
# 시트 이름 변경
ws1.title = "시트1"

# %%
# 시트 이름 확인
wb.sheetnames

# %%
# 반복문으로 시트 이름 확인
for i in wb:
    print(i.title)

 

3) 시트활성화 후 열 확인

 

# %%
# 시트 활성화 후 열 체크
ws = wb.active
# 열
ws["A"]
ws[2:3]
ws["A:C"]

 

4) 반복문 활용해서 다중셀 접근

 

* 행 단위와 열 단위

 

# %%
# 반복문으로 다중셀 접근 
# 행 단위
for i in ws.iter_rows(min_row=2, max_row=3):
    print(i)
    for j in i:
      print(j)

# %%
# 열 단위
for i in ws.iter_cols(min_row=1, max_row=2, max_col = 3):
    print(i)
    for j in i:
        print(j)

 

* 모든 행단위와 모든 열 단위

 

# %%
# 모든 행
list(ws.rows)
tuple(ws.rows)

# 모든 열
list(ws.columns)

 

5) 데이터 입력

 

# %%
# 데이터 입력
ws["A1"] = "Korea"

 

6) 데이터 확인

 

* 셀 전체 값, 행 단위, 열 단위 접근

 

# %%
# 셀의 값에 접근
for i in ws.values:
    print(i)
    for j in i:
        print(j)


# %%
# 확인
# 행 단위
for i in ws.iter_rows(min_row=1, max_row=3, max_col = 3, values_only=True):
    print(i)
    for j in i:
        print(j)
        
# %%
# 열 단위
for i in ws.iter_cols(min_row=1, max_row=3, max_col = 3, values_only=True):
    print(i)
    for j in i:
        print(j)

 

* 결과물 

 

 

 

 

 

 

 

 

7) 엑셀 불러오기

 

* 엑셀 불러오기, 원하는 값 출력

 

# %%
# 엑셀 불러오기
from openpyxl import load_workbook
wb = load_workbook(r"/content/drive/MyDrive/BDA/part6/stock price.xlsx", data_only=True)
ws = wb["Sheet1"]

# %%
print(ws["A2"].value)
print(ws["D2"].value)

# %%
# 셀 좌표로 값 출력
ws.cell(3,2).value


# %%
ws_stock = ws["B2":"B11"]
for row in ws_stock:
    for cell in row:
        print(cell.value)

# 행이 열마다 투플 형태로 갖고 있기 때문에 이중 포문을 돌려야 함

 

* 모든 행 값 출력

 

# %%
# 모든 행 값
for row in ws.rows:
    for cell in row:
        print(cell.value)

 

* 모든 열 값 출력

 

# %%
# 모든 열 값
for col in ws.columns:
    for cell in col:
            print(cell.value)

 

 

 

* 모든 행과 열 값 [DB 형태로 가져오기]

 

# %%
# 모든 행과 열 값 [DB 형태로 가져오기]
values = []
for row in ws.rows:
    row_values = []
    for cell in row:
        row_values.append(cell.value)
    values.append(row_values)
print(values)

 

8) 값의 변경

 

* 변경 사항

 

# %%
# 값 변경 후 저장
ws.cell(2,4,1000)
ws.cell(3,4,2000)
ws.cell(4,4,3000)

wb.save("stock_modify.xlsx")

 

 

 

 

* 변경 전

 

* 변경 후

 

 

3. 이론 - DB 다루기

 

1) 이론

* 순서 1

1. 오라클 외부라이브러리 설치

2. 오라클 DB 생성

3. CX_oracle(로그인) 임포트

4. 커서 <- SQL 실무, 결과

5. SQL 문법 사용 (DDL - 자동커밋, DML+commit - X)

6. 커서 종료

 

* 순서 2

1. 테이블 생성

2. insert

3. select 조회

4. 테이블 설치

 

4. 실습 - DB 다루기

 

1) 아나콘다 설치, vscode 설치 후 vscode 실행

 

 

아나콘다에서 vscode 실행 

 

2) 터미널에서 오라클 설치

 

python -m pip install cx_Oracle --upgrade

 

 

3) 테이블 생성

 

#%%
import cx_Oracle as oci
# db connection
con = oci.connect("scott/tiger@localhost:1521/orcl")
# cursor
cur=con.cursor()
# SQL
sql = "Create table test (ID int, Name varchar(32))"
cur.execute(sql)
print(cur.execute("select * from test").fetchall())
con.close()

 

오류 발생

 

- 생성된 테이블이 있을 경우 실행 안해도 됨.

 

 

4) 테이블에 값 집어 넣기

 

#%%
import cx_Oracle as oci
# db connection
con = oci.connect("scott/tiger@localhost:1521/orcl")
# cursor
cur=con.cursor()
# insert
while True:
    data1 = input("사용자 ID를 입력하세요> ")
    if data1 == "":
        break
    data2 = input("사용자 이름을 입력하세요> ")
    sql = "INSERT INTO TEST VALUES ('" + data1 + "', '" + data2 + "')"
    cur.execute(sql)
con.commit()
con.close()

 

 

- 공백 상태에서 enter를 적용할 경우 프로그램은 종료.

 

 

5) select을 통한 데이터 조회

 

#%%
import cx_Oracle as oci
# db connection
con = oci.connect("scott/tiger@localhost:1521/orcl")
# cursor
cur=con.cursor()
# SQL
sql = "select * from TEST"
cur.execute(sql)
print("사용자 ID 사용자 이름")
print("-"*20)
# 
while True:
    row = cur.fetchone()
    if row is None:
        break
    data1 = row[0]
    data2 = row[1]
    print("%3s %13s" % (data1, data2))
# close
con.close()

 

실행 결과

- 해당 값으로 입력 조회한 출력값이 생성

 

 

6) 테이블 드랍 (삭제)

 

#%%
import cx_Oracle as oci
# db connection
con = oci.connect("scott/tiger@localhost:1521/orcl")
# cursor
cur=con.cursor()
# SQL
sql = "DROP TABLE TEST"
cur.execute(sql)
print(cur.execute("SELECT * FROM TEST").fetchall())
# close
con.close()

 

5. 복습 - 파이썬 머신러닝 판다스 데이터 분석

 

했던거 돌아보기

 

 

 

* 핵심

- 엑셀, db 사용하기.

 

 

* 링크 (작성한 계정으로 로그인해서 들어가기)

 

 

Google Colaboratory Notebook

Run, share, and edit Python notebooks

colab.research.google.com

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

728x90
반응형
LIST