본문 바로가기
Data_Analysis/Numpy, Pandas

[Pandas] 파일 불러오기 - Encoding

by Classic! 2020. 12. 17.

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에는 다양한 확장자 파일을 불러올 수 있는 기능이 있다. 

pandas에서 read_~ 메서드로 다양한 확장자 파일을 불러들일 수 있다.

 

 

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

댓글