Python/Pandas

[Pandas] 파이썬 데이터프레임에서 SQL 쿼리로 데이터 가져오기(feat. pandasql 모듈의 sqldf 함수)

jimmy_AI 2022. 6. 19. 13:43
반응형

Python 판다스 SQL 활용 데이터 추출 예제

파이썬의 데이터프레임에서 판다스의 확장 모듈인 pandasql의 sqldf 함수 기능을 통하여

SQL 쿼리로 원하는 데이터를 가져오는 예제를 다루어보겠습니다.

 

용이한 이해를 위하여 아래와 같은 간단한 데이터프레임 df를 가정해보겠습니다.

import pandas as pd

a = {'A' : [111, 222, 333, 444, 555, 666], 'B' : ['aaa', 'aaa', 'aaa', 'bbb', 'bbb', 'bbb']}
df = pd.DataFrame(a)
df

 

만일, pandasql 모듈이 설치되어 있지 않다면 아래 명령어로 설치를 진행해줍니다.

!pip install pandasql

 

반응형

 

모듈 설치가 완료되었다면 SQL 명령어를 통한 데이터 추출을 진행해보겠습니다.

 

쿼리를 문자열 형태로 적어 sqldf 함수 내에 input으로 넣어주시는 형태로 사용하시면 됩니다.

데이터프레임이 저장된 변수 이름, 열 이름 등을 쿼리 내에서 그대로 사용하실 수 있습니다.

 

예시로, B 열의 값이 'aaa'인 행들의 모든 열을 가져오는 쿼리를 적용한 코드는 아래와 같습니다.

from pandasql import sqldf

query = "SELECT * FROM df WHERE B = 'aaa'"

df1 = sqldf(query)

df1

 

그룹화를 적용한 복합적인 SQL 쿼리 등도 아래와 같이 sqldf 함수에서 적용이 가능합니다.

query = "SELECT B, SUM(A) as A_sum FROM df GROUP BY B"

df2 = sqldf(query)

df2