Python 프로그램을 실행하며 데이터 분석을 수행할 때는 분석에 필요한 데이터셋을 불러와야 합니다. Python은 다양한 모듈을 통해 여러 파일 형식의 외부 데이터를 프로그램 내로 손쉽게 가져올 수 있도록 지원합니다. 이 글에서는 대표적인 세 가지 방법, 즉 csv 모듈, pandas 라이브러리, 그리고 pyodbc를 활용해 각각의 형식에서 데이터를 가져오는 방법을 살펴보겠습니다.
1. csv 모듈로 CSV 파일 읽기
csv 모듈을 사용하면 콤마(,)를 구분자(delimiter)로 하여 파일의 각 행을 순서대로 읽어들일 수 있습니다. 기본적인 처리 흐름은 다음과 같습니다.
먼저 파일을 읽기 전용 모드('r')로 열고, csv.reader()에 구분자를 지정합니다. 그다음 for 반복문을 사용해 CSV 파일의 각 행을 하나씩 출력하면 됩니다.
예제 코드
import csv
with open("E:\\customers.csv", 'r') as custfile:
rows = csv.reader(custfile, delimiter=',')
for r in rows:
print(r)실행 결과
위 코드를 실행하면 아래와 같이 각 행이 리스트 형태로 출력됩니다.
['customerID', 'gender', 'Contract', 'PaperlessBilling', 'Churn'] ['7590-VHVEG', 'Female', 'Month-to-month', 'Yes', 'No'] ['5575-GNVDE', 'Male', 'One year', 'No', 'No'] ['3668-QPYBK', 'Male', 'Month-to-month', 'Yes', 'Yes'] ['7795-CFOCW', 'Male', 'One year', 'No', 'No'] ...... .......
2. pandas 라이브러리로 Excel 파일 읽기
pandas는 CSV뿐만 아니라 Excel, JSON 등 대부분의 파일 형식을 처리할 수 있는 강력한 데이터 분석 라이브러리입니다. 특히 read_excel 관련 기능을 활용하면 Excel 파일도 간단하게 DataFrame으로 변환할 수 있습니다.
아래 예제에서는 앞서 살펴본 고객 데이터의 Excel 버전(xlsx)을 읽어 들입니다. 결과를 보면 CSV 파일을 읽었을 때와 동일한 데이터를 얻을 수 있습니다.
예제 코드
import pandas as pd
df = pd.ExcelFile("E:\\customers.xlsx")
data = df.parse("customers")
print(data.head(10))실행 결과
위 코드를 실행하면 상위 10개 행이 표 형태의 DataFrame으로 깔끔하게 출력됩니다.
customerID gender Contract PaperlessBilling Churn 0 7590-VHVEG Female Month-to-month Yes No 1 5575-GNVDE Male One year No No 2 3668-QPYBK Male Month-to-month Yes Yes 3 7795-CFOCW Male One year No No 4 9237-HQITU Female Month-to-month Yes Yes 5 9305-CDSKC Female Month-to-month Yes Yes 6 1452-KIOVK Male Month-to-month Yes No 7 6713-OKOMC Female Month-to-month No No 8 7892-POOKP Female Month-to-month Yes Yes 9 6388-TABGU Male One year No No
3. pyodbc로 데이터베이스 서버 연결하기
pyodbc 모듈을 사용하면 Python에서 직접 데이터베이스 서버(SQL Server 등)에 접속할 수 있습니다. 이를 활용하면 SQL 쿼리를 실행하여 관계형 데이터베이스에 저장된 데이터를 바로 가져올 수 있습니다.
쿼리를 전달하기 전에 먼저 드라이버, 서버 이름, 사용자 계정(UID/PWD), 데이터베이스명 등 연결 정보를 정의해야 한다는 점에 유의하세요.
예제 코드
import pyodbc
import pandas as pd
sql_conn = pyodbc.connect(
"Driver={SQL Server};Server=serverName;UID=UserName;PWD=Password;Database=sqldb;"
)
data_sql = pd.read_sql_query('SQL QUERY', sql_conn)
data_sql.head()실행 결과
실행 결과는 전달된 SQL 쿼리에 따라 달라지며, 조회된 결과가 DataFrame 형태로 화면에 표시됩니다.
정리
지금까지 Python에서 외부 데이터를 가져오는 세 가지 대표적인 방법을 알아보았습니다. 간단한 CSV 파일 처리에는 표준 라이브러리인 csv 모듈이 적합하고, 다양한 파일 형식과 데이터 가공까지 함께 처리하고 싶다면 pandas가 가장 효율적입니다. 또한 데이터베이스에 저장된 데이터가 필요하다면 pyodbc로 SQL 서버에 연결하여 원하는 데이터를 직접 조회할 수 있습니다. 분석 목적과 데이터 소스의 특성에 맞는 도구를 선택해 활용하시기 바랍니다.