반복문으로 폴더안 데이터 한꺼번에 불러오기
Updated:
판다스를 사용하다보면 여러개의 데이터 파일을 불러와야하는 경우가 있습니다. 따로따로 불러와도 되지만 csv파일이 5개가 넘어가는 순간부터 번거로워지기 시작합니다. (공공데이터 분석을 하다 시도별로 나뉘여저있는 csv파일을 불러와 합치느라 애먹었던 경험이 있습니다.)
이럴경우 반복문을 이용해 한번에 불러올 수 있습니다.
# datas 폴더 내에 파일 리스트를 files에 할당해줍니다.
import os
files = os.listdir('./datas/samples')
files
['sales_train.csv',
'shops.csv',
'test.csv',
'item_categories.csv',
'items.csv',
'sample_submission.csv']
파일명이 너무 복잡하면 이후 데이터 프레임 핸들링 시 불편할 수 있습니다. 미리 사용할 변수명을 파일명으로 설정해두면 좋습니다.
# files의 리스트 요소를 ','으로 스플릿하고 앞 요소만 가져오면 파일명만 가져올 수 있습니다.
files[1].split('.')[0]
'shops'
# 반복문으로 파일명마다 데이터 프레임을 할당해줍니다.
for i in files:
globals()[i.split('.')[0]] = pd.read_csv(f'./datas/samples/{i}')
# 데이터 프레임이 잘 불러져왔는지 확인합니다.
test.head()
ID | shop_id | item_id | |
---|---|---|---|
0 | 0 | 5 | 5037 |
1 | 1 | 5 | 5320 |
2 | 2 | 5 | 5233 |
3 | 3 | 5 | 5232 |
4 | 4 | 5 | 5268 |
sales_train.head()
date | date_block_num | shop_id | item_id | item_price | item_cnt_day | |
---|---|---|---|---|---|---|
0 | 02.01.2013 | 0 | 59 | 22154 | 999.00 | 1.0 |
1 | 03.01.2013 | 0 | 25 | 2552 | 899.00 | 1.0 |
2 | 05.01.2013 | 0 | 25 | 2552 | 899.00 | -1.0 |
3 | 06.01.2013 | 0 | 25 | 2554 | 1709.05 | 1.0 |
4 | 15.01.2013 | 0 | 25 | 2555 | 1099.00 | 1.0 |