데이터 분석의 첫 단계는 효율적으로 데이터를 불러오는 것이다다. 본 글에서는 다양한 소스 또는 환경에서 데이터를 불러오는 다양한 방법을 정리하고자 한다.
Excel 데이터를 불러올 때, index_col=0
을 설정하면 데이터 프레임에서 불필요한 unnamed column의 생성을 방지할 수 있다.
import pandas as pd
df = pd.read_excel('data/data.xlsx', index_col=0)
지정된 경로에서 시작하는 특정 파일명을 가진 여러 개의 파일을 한 번에 불러오기
import pandas as pd
from glob import glob
path = '파일이 위치한 경로/'
files = glob(f"{path}파일명*.csv") # 파일명으로 시작하는 모든 CSV 파일
df = pd.concat(
[pd.read_csv(file) for file in files],
ignore_index=True
)
CSV 파일 로딩 시 발생할 수 있는 토크나이징 에러를 처리하는 방법
import csv
import pandas as pd
from pathlib import Path
file_path = Path.cwd() / 'data.csv'
f = open(file_path, encoding='utf-8')
reader = csv.reader(f)
csv_list = []
for row in reader:
csv_list.append(row)
f.close()
log_df = pd.DataFrame(csv_list)
외부 웹 소스에서 데이터를 다운로드하여 로컬 파일로 저장
import requests
res = requests.get('https://github.com/e9t/nsmc/raw/master/ratings_train.txt')
with open('nsmc_train.csv', 'wb') as f:
f.write(res.content)
pymssql 라이브러리를 사용하여 SQL Server 데이터베이스와 연결
import pymssql
import pandas as pd
conn = pymssql.connect(server='', user='아이디', password='패스워드', database='데이터베이스')
cursor = conn.cursor()
query = "SELECT * FROM DATABASE"
data = pd.read_sql(sql=query, con=conn)
conn.close()
df = pd.DataFrame(data)
사내 VDI나 보안 문서에서 Excel 파일을 안전하게 로딩
import xlwings as xw
import pandas as pd
book = xw.Book('file.xlsx')
df = book.sheets(1).used_range.options(pd.DataFrame).value
ZIP 파일 내의 데이터를 추출하고 처리
import zipfile
from pathlib import Path
file_path = Path.cwd() / '폴더이름'
my_zip = zipfile.ZipFile(path, 'r')
zip_list = my_zip.namelist()
data = my_zip.read(zip_list[0])
data = data.decode('utf-8')
pd.read_table(path, sep=',', names=['DATE', tag_name])
python 내에서 간단하게 샘플 데이터셋 생성
from sklearn import datasets
classification_data = datasets.make_classification()
clustering_data = datasets.make_blobs()