본문 바로가기

Python/Pandas

ChatGPT로 Python pandas 알아보기 (2):데이터 불러오기/저장하기

반응형

 

 

ChatGPT로 Python pandas 알아보기 (2) : 데이터 불러오기/저장하기

이번 포스트에서는 pandas에서의 데이터 불러오기/저장하기에 대해 알아보는 시간을 가져 보고자 한다.
ChatGPT Noteable를 통해 관련 내용을 출력받아서 내용을 정리했는데, excel이나 DB 같은 샘플 예시가 없어서 인지 코드 작성하는 부분에서 오류가 나서 이번에는 Noteable을 사용하지 않고 ChatGPT만 사용했다.
그럼 이제 pandas를 활용하여 데이터를 어떻게 불러오고 저장하는지에 대해 알아보자.
우선 모든 코드에서는 pandas를 pd로 import 한 상태로 진행했다.
import pandas as pd
데이터 불러오기
✔ CSV 파일 불러오기
CSV(Comma Separated Values) 파일은 가장 일반적으로 사용되는 데이터 파일 형식 중 하나이다.
pandas에서는 read_csv() 함수를 사용하여 CSV 파일을 불러올 수 있다.
df = pd.read_csv('파일경로/파일이름.csv')
✔ Excel 파일 불러오기
Excel 파일도 자주 사용되는 데이터 파일 형식이다.
pandas에서는 read_excel() 함수를 사용하여 Excel 파일을 불러올 수 있다.
df = pd.read_excel('파일경로/파일이름.xlsx')
✔ SQL 데이터베이스에서 불러오기
pandas에서 SQL 데이터베이스에 접근하려면 각 데이터베이스에 맞는 드라이버를 설치하고, 해당 드라이버를 통해 연결해야한다.
📌 SQLite
SQLite에서는 sqlite3 모듈을 사용한다.
import sqlite3

conn = sqlite3.connect('데이터베이스이름.db')
📌 MySQL
MySQL에서는 pymysqlsqlalchemy 라이브러리가 필요하다.
from sqlalchemy import create_engine

engine = create_engine("mysql+pymysql://사용자이름:비밀번호@localhost/데이터베이스이름")
📌 PostgreSQL
PostgreSQL에서는 psycopg2sqlalchemy 라이브러리가 필요하다.
from sqlalchemy import create_engine

engine = create_engine("postgresql+psycopg2://사용자이름:비밀번호@localhost/데이터베이스이름")
데이터베이스 연결 후에 이 후 코드는 동일하다.
read_sql_query() 함수를 사용하여 데이터를 불러올 수 있다.
df = pd.read_sql_query("SELECT * FROM 테이블이름", conn)
index_col
index_col 파라미터는 데이터를 불러올 때 인덱스로 설정할 열을 지정하는데 사용된다.
이를 통해 데이터를 더 효과적으로 관리하고 분석할 수 있다.
# CSV
df = pd.read_csv('파일경로/파일이름.csv', index_col='인덱스로 설정할 열 이름')

# Excel
df = pd.read_excel('파일경로/파일이름.xlsx', index_col='인덱스로 설정할 열 이름')

# SQL
df = pd.read_sql_query("SELECT * FROM 테이블이름", engine, index_col='인덱스로 설정할 열 이름')
데이터 저장하기
✔ CSV 파일로 저장하기
to_csv() 함수를 사용하여 데이터프레임을 CSV 파일로 저장할 수 있다.
df = pd.read_csv('파일경로/파일이름.csv')
✔ Excel 파일로 저장하기
to_excel() 함수를 사용하여 데이터프레임을 Excel 파일로 저장할 수 있다.
df.to_excel('파일경로/파일이름.xlsx')
✔ SQL 데이터베이스에 저장하기
to_sql() 함수를 사용하여 데이터프레임을 SQL 데이터베이스에 저장할 수 있다.
데이터베이스 드라이버 상관없이 모든 데이터베이스에서 동일하게 동작한다.
df.to_sql('테이블이름', engine, if_exists='replace')
index
데이터를 저장할 때는 index 파라미터를 사용하여 인덱스를 저장할지 여부를 결정할 수 있다.
기본적으로 index=True로 설정되어 있어, 인덱스가 함께 저장된다.
인덱스를 저장하지 않으려면 index=False로 설정하면 된다.
# CSV 파일로 저장
df.to_csv('파일경로/파일이름.csv', index=False)

# Excel 파일로 저장
df.to_excel('파일경로/파일이름.xlsx', index=False)

# SQL 데이터베이스에 저장
df.to_sql('테이블이름', engine, if_exists='replace', index=False)
이상으로 pandas에서의 데이터 불러오기 및 저장하기에 대해 알아보는 시간을 가졌다.
필자의 경우 CSV, Excel로 작업을 많이 하는 편이라 관련 내용은 익숙해서 반가웠는데, 데이터베이스의 데이터를 가져오는 건 사실 해본 적이 없어서 존재 자체를 몰랐다.
블로그를 시작함으로써 평소보다 공부를 더 많이 하게 되는 거 같은데...
이것이야말로 "오히려 좋아" 가 아닌가 싶다.

 

반응형

loading