본문 바로가기
🖊️Programming Language/📌Python

[Python] Python을 이용하여 csv파일을 불러와서 전처리한 후, txt파일로 저장하기

by 빛나고요 2021. 9. 9.
BIG

Study. Python

마지막 학기 시작과 동시에 프로젝트가 시작되었다.

공공데이터를 사용하기 때문에 Python으로 전처리를 먼저 할 필요가 있었다.

별거 없지만 '구글'님의 힘을 빌려서 혼자 해냈다는 기특함(?)을 공유하고 업데이트가 잦은 파이썬 때문에 예전 블로그를 보고 에러를 해결하지 못할 수도 있는 분이 있을 수도 있기 때문에 블로그를 쓴다.

 

데이터셋은 csv파일(엑셀 파일)로 가져왔고, pycharm으로 진행했다.  

 

[1] csv파일 불러오기

시작하기에 앞서 미리 그 파일 데이터를 작업하고 있는 파일이 있는 폴더에 넣어두고 작업하도록 하자.

 

 

이제 사용할 데이터가 저장되어 있는 csv파일을 불러와서 저장해보자.

read_csv함수를 이용해서 csv파일을 읽어오도록 하자.

import pandas as pd
import warnings
import sys

# 경고 무시
warnings.filterwarnings('ignore')

# food.csv 파일을 cp949로 인코딩해서 읽어온 후 data_file에 저장
data_file = pd.read_csv('../pythonProject1/location/food.csv', encoding='cp949')

#data_file을 출력해서 csv파일 안에 있는 데이터가 잘 들어왔는지 확인
print(data_file)

⛔ 여기서 encoding문제로 에러가 났었다.

utf-8, euc-kr 둘 다 사용해봤는데  'UnicodeDecodeError: 'euc_kr' codec can't decode byte 0x98 in position 127944: illegal multibyte sequence'라는 에러가 계속 발생해서 구글님의 힘을 빌려 cp949로 수정했더니 잘 작동되었다.

 

실행 결과를 보면 전체 30588개의 데이터가 연번, 업소명, 업태, 업소주소 컬럼명을 가지고 잘 불러와진 것을 알 수 있다. 

 

 

[2] '업소 주소' 필드만 가져오기

이번에는 업소 주소 필드만 가져와보자.

import pandas as pd
import warnings
import sys

# 경고 무시
warnings.filterwarnings('ignore')

# food.csv 파일을 cp949로 인코딩해서 읽어온 후 data_file에 저장
data_file = pd.read_csv('../pythonProject1/location/food.csv', encoding='cp949')

#데이터 파일에 있는 '업소주소'컬럼의 열 전체를 가져와서 address에 저장
pd.set_option('display.max_rows', None)
address = data_file[['업소주소']]

print(address)

업소 주소 컬럼의 열 전체를 가져와서 address에 저장하고 출력하였다. 

 

이렇게 주소만 잘 가져와진 것을 알 수 있다.

 

 

[3] 주소를 txt 파일에 넣고 저장하기

이번에는 아까 가져온 주소 데이터만 txt 파일에 넣고 저장해보자. 

import pandas as pd
import warnings
import sys

# 경고 무시
warnings.filterwarnings('ignore')

# food.csv 파일을 cp949로 인코딩해서 읽어온 후 data_file에 저장
data_file = pd.read_csv('../pythonProject1/location/food.csv', encoding='cp949')

#데이터 파일에 있는 '업소주소'컬럼의 열 전체를 가져와서 address에 저장
pd.set_option('display.max_rows', None)
address = data_file[['업소주소']]

#food.txt파일을 쓰기 형식으로 열기
sys.stdout = open('food.txt', 'w')

#txt파일 안에 넣기
for i in range(1):
    print("|" + address) #앞에 |를 붙이고 저장해둔 address를 출력
sys.stdout.close()

sys 라이브러리를 이용해서 txt 파일을 쓰기 형식으로 열어서 반복문으로 주소를 파일 안에 저장하고 close() 함수로 닫는다. 

위 이미지와 같이 txt 파일이 생성되고, txt 파일을 열어보면

업소 주소만 저장되어 있는 것을 알 수 있다. 

 

이렇게 csv파일에 있는 데이터를 불러와서 필요한 열만 가져온 후, txt 파일에 저장하는 것까지 해보았다.

 

 

 

다음에는 웹 안에 있는 태그들을 크롤링해서 가져오는 방법도 포스팅할 예정이다.

바위🖐

'🖊️Programming Language > 📌Python' 카테고리의 다른 글

[Python] 파이썬 개념 Study  (0) 2021.07.06
[Python] 파이썬 개념 Study  (0) 2021.06.28
[Python] 파이썬 개념 Study  (0) 2021.06.27
[Python] 파이썬 개념 Study  (0) 2021.06.27
[Python] 파이썬 개념 Study  (0) 2021.06.27

댓글