[파이썬으로 시작하는 데이터 사이언스] 파일 경로 설정
절대 경로
- 절대경로는 어떤 웹페이지나 파일이 가지는 고유한 경로로 최상위 디렉토리가 포함된 경로
- file://Users/~/
- C:\user\documents\~
상대 경로
상대경로를 이용하면 주피터 파일과 같은 폴더 내 위치이므로 tab을 눌러 불러옴
- /는 루트
- ./는 현재 위치
- ../는 현재 위치의 상위 폴더
- ../../는 두 단계 위 상위 폴더 의미
핵심 키워드
- %mv
- %pwd
실습 파일 경로
- %ls
- pd.read_csv
- cp949
한글 윈도우에서 사용하는 인코딩 설정 : utf8 이 기본 설정이므로 변경해준다
> UnicodeDecodeError : 코드 오류: encoding = "cp949"
* 다운받은 파일을 주피터 노트북에서 작업하고 있는 폴더로 가져오기
Data 와 실습 파일 분리_데이터 파일의 경우 따로 폴더를 만들어서 관리하는 것을 추천드립니다.
- 'data' 폴더를 생성 한 후 '도로교통공단_교통사고다발지역_20191010.csv'파일을 옮겨줍니다.
# 현재 실습 파일 경로(1)
%pwd
# (2)
import os
os.getcwd()
%mv /Users/~~~/~~~/도로교통공단_교통사고다발지역_20191010.csv .
- 파일을 다운 받은 폴더의 경로를 적어주세요.
- 파일을 다운 받은 위치의 경우 개인마다 다르기 때문에 자신에 맞게 작성해주셔야 합니다.
- 제일 끝에 한 칸을 띄우고 . 을 꼭 적어주셔야 합니다!
- 주피터 노트북 파일이 있는 폴더 경로를 확인하려면 주피터 노트북 상에서 %pwd를 실행하시면 됩니다.
* 판다스로 csv파일 불러오기
pd.read_csv("도로교통공단_교통사고다발지역_20191010.csv", encoding="cp949")
- 소괄호() 안에서 shift + tab 키를 누르면 도움말을 볼 수 있습니다.
- csv파일을 불러올 때 한글파일 인코딩을 하지 않으면 오류가 나기 때문에 encoding="cp949"를 함께 적어주셔야 합니다.
- "euc-kr"을 적는 방법도 있지만 일부 한글은 깨지기 때문에 "cp949"를 사용하시는 것을 추천드립니다.
glob
- 유닉스 스타일 경로명 패턴 확장
특정 경로에 어떤 파일이 있는지 확인 가능
from glob import glob
glob("data/*")
> ['data/도로교통공단_.csv']
list 형태로 불러온 것을 확인할 수 있다.
file 명만 string로 불러오려면 변수 설정해주면 된다.
file name = glob("data/*")[0]
file name
> 'data/도로교통공단_.csv'
여러 파일을 한 번에 로드하는 방법
- glob : 경로 확인, 규칙으로 검색 가능.
- for로 여러 파일을 하나의 list에 넣고
- pd.concat - dataframe
glob("data/store/*.csv")
# 운영체제마다 텍스트 인코딩 방법이 달라서 약간의 오류가 생길 수 있음
# *_*_* 이나 *.csv 처럼 규칙으로 검색
# 파일명을 오류없이 가져올 수 있음
file_csv = glob("data/store*.csv")
# 파일 불러오기
for file_csv_name in file_csv:
print(file_csv_name)
pd.read_csv(file_csv_name)
# 파일 리스트 생성
file_list = []
for file_csv_name in file_csv:
temp = pd.read_csv(file_csv_name) #low_memory = False
file_list.append(temp)
# 하나의 dataframe으로 합치기
len(file_list)
df = pd.concat(file_list)
df.shape
> (2363994, 39)
df.head()