python으로 데이터를 다룰 때 주로 외부에 저장된 csv, text, excel 등 형태의 파일을 불러와서 사용합니다.
이때, 파일을 불러오는 방법을 2가지 정도 소개하고자 합니다.
한글이 포함된 파일을 불러올 때 필요한 인코딩 방법 위주로 작성했습니다.
1. pandas.read_csv()
- 기본적으로 read_~~메서드는 "경로/파일명.확장자"만 포함해서 파일을 불러올 수 있다.
- encoding이 필요한 경우 encoding="utf-8" 옵션을 추가한다.
import pandas as pd
# csv형태의 ratings 파일 불러오기. "경로/파일명.확장자"
data=pd.read_csv("C:/ratings.csv",encoding="utf-8")
다음은 엑셀 파일을 불러온 것이다.
- sep="|" : |로 데이터를 나눈다.
- nrow=5 : 5행까지만 불러온다.
- index_col="CODE" : CODE열을 인덱스로 지정한다.
- encoding에는 위와 같이 utf-8을 쓰거나 cp949를 쓸 수 있다. utf-8로 변환되지 않는다면 cp949로 시도해보자.
# excel형태의 Sales 파일 불러오기
data=pd.read_excel("C:/Sales.xls",sep="|",nrows=5,index_col="CODE",encoding="cp949")
** 위의 2개 방법이 모두 통하지 않을 때, 본인은 아래와 같이 csv파일의 확장자를 직접 수정해서 사용한 적이 있다.
다른 이름으로 저장 > CSV UTF-8(쉼표로 분리)로 확장자 변경
- 위에는 excel과 csv를 예제로 썼지만, 아래 이미지에서 보듯이 pandas에는 다양한 확장자 파일을 불러올 수 있는 기능이 있다.
2. codecs
아래는 깃허브에서 text 파일을 불러와서 codecs 패키지로 데이터를 인코딩한 것이다.
# github에 있는 네이버 영화 감상평에 대한 감성 분석 예제 파일 불러오기
!rm -f ratings_train.txt ratings_test.txt
!wget -nc https://raw.githubusercontent.com/e9t/nsmc/master/ratings_train.txt
!wget -nc https://raw.githubusercontent.com/e9t/nsmc/master/ratings_test.txt
# 유니코드로 인코딩하며 읽기 위해 codecs 패키지를 사용한다.
# 읽어들인 결과는 유니코드 문자열이 된다.
import codecs
with codecs.open("ratings_train.txt",encoding="utf-8") as f:
data=[line.split('\t') for line in f.read().splitlines()]
# 원래 파일을 한 줄씩 읽어서(>> f.read().splitlines()) 탭으로 구분(>>line.split('\t'))
data=data[1:] # header 제외
'Data_Analysis > Numpy, Pandas' 카테고리의 다른 글
[Pandas] Profiling (0) | 2020.10.08 |
---|---|
[Pandas] DataFrame 함수 (where()) (0) | 2020.07.22 |
[Pandas] 그룹연산(groupby, pivot_table) (0) | 2020.07.21 |
[Pandas] Concat, Merge (0) | 2020.07.21 |
[Pandas] 결측치 처리 (0) | 2020.07.21 |
댓글