본문 바로가기
Dev/SQL

[데이터다루기] Python으로 SQL사용하기

by bodi 2022. 9. 29.

데이터를 다루다보면 python을 사용해서 데이터를 처리하는게 더 쉬운 경우가 있고, 어느 상황에서는 SQL로 전처리하여 데이터를 가져오는게 더 효율적인 경우가 있습니다. 그렇기 때문에 상황에 따라 필요한 언어를 선택해서 사용하면 됩니다. SQL로 DB에서 데이터 추출 후 python으로 데이터를 추가 처리하는게 대부분 사용하는 방법입니다. 

반대로, 외부에서 받은 csv 파일의 데이터가 있다고 가정해보면 SQL과 python 중 해당 데이터는 python으로 다룰 수 있습니다. python 문법이 아직 어색하거나 SQL로 다루면 정말 금방 끝날 처리라면 SQL을 활용할 수 있는 방법에 대해서 고민해볼 것입니다.

python에서 SQL을 사용할 수 있는 라이브러리가 있습니다. 바로 pandasql 입니다.

사용 방법은 간단합니다.

import pandas as pd
from pandasql import sqldf

mysql = lambda q: sqldf(q, globals())
temp = pd.read_csv("""csv 파일 경로""")


mysql("""

SELECT *
FROM temp

""")

pandas를 사용하여 csv 파일을 불러옵니다. 불러온 csv파일을 pandas dataframe형태로 다룰 수도 있지만 sqldf 내 pandasql을 사용하여 mysql이라는 함수 형태를 만들어주고 그 안에서 csv 파일을 실제 데이터베이스 내 테이블처럼 FROM 구문에 작성하여 사용가능합니다. 

 

예시로 VScode에서 실제로 작성해보겠습니다. 공유 자전거 데이터셋인 bike_dataset.csv를 불러와서 bike에 저장해줍니다. 그리고 mysql 함수를 통해 bike 테이블의 전체 컬럼을 조회하면 아래와 같은 결과값이 나타납니다. 

 

실제 데이터베이스에서 데이터를 추출하고 정제하는것과 동일하게 사용 가능합니다. bike 테이블에서 yr이 2012년인 데이터만 필터링하고 싶을때 WHERE 구문을 사용하여 조건을 주면 필터링된 결과값을 확인할 수 있습니다.

 

python으로 데이터를 전처리한 결과를 얻기 어려울때는 pandasql을 사용해서 데이터를 처리하는것도 좋은 방법이 될 것 같습니다.

조만간 데이터 다루기 컨텐츠를 또 발굴해서 다시 찾아오겠습니다 안녕-!🙋🏻‍♀️

'Dev > SQL' 카테고리의 다른 글

[SQL] MySQL Workbench설치하기 (window)  (0) 2021.06.23