-
csv 파일을 빅쿼리에 업로드 하기 - 인코딩 주의Backend/Bigquery 2023. 6. 29. 15:50
필자는 공공데이터를 활용하여, 빅쿼리 테이블을 생성하고, 쿼리 연습을 위해 다운받았다.
공공 데이터는 누락이 많기는 하지만, raw 데이터 보다는 전처리가 어느정도 되어 있기 때문에, 가공해서 사용하기 유용함!
보통 openAPI를 신청하기도 하고, csv 파일을 다운 받기도 하는데, 먼저 csv 파일 다운로드 받은것을 python으로 간단하게 정리하여 올려보았다.
공공 데이터 포탈은 여기를 참고: https://www.data.go.kr/index.do
공공데이터 포털
국가에서 보유하고 있는 다양한 데이터를『공공데이터의 제공 및 이용 활성화에 관한 법률(제11956호)』에 따라 개방하여 국민들이 보다 쉽고 용이하게 공유•활용할 수 있도록 공공데이터(Datase
www.data.go.kr
먼저, 지하철 승하차 인원에 대한 월별 데이터를 2023 1월부터 5월까지 다운 받았다.
c드라이브 안 공공데이터 라는 폴더에 5개의 파일을 넣어준다.
그리고 5개의 csv 파일을 for문을 이용하여 읽고, 1개로 합쳐서 csv로 다시 저장하는 함수를 생성한다.
[주의해야 할 점]
1. 빅쿼리에서는 인코딩을 할 때, cp949로 해야한다! 그래야 빅쿼리 업로드 하고 나서 한글 깨짐 현상이 없기 때문에!
2. 컬럼명 즉, 가장 header는 미리 영어로 전처리 과정을 해놓는 것이 좋다. -> 왜냐하면 스키마를 자동으로 설정 할 때, 한글을 읽어들이지 못해서 임의의 컬럼이름으로 만들기 때문!
1. 먼저 하나의 파일을 컬럼 변경 및 저장 방법이다.
- 필요할 경우, 파일을 읽을 때도, 인코딩 설정을 해줄것- 필자의 경우 year 이라는 컬럼을 인덱스로 설정해주었지만, 만약 인덱스가 필요 없다면 file.to_csv(('C:\공공데이터\market_v2.csv', encoding='cp949', index=False) 처럼 index=False를 추가하면 된다.
import pandas as pdimport osfile = pd.read_csv('C:\공공데이터\서울_상권분석서비스(상권-상권변화지표).csv', encoding='cp949')file = file.drop(0, axis=0)file = file.set_index('year')print(file)print(file.columns)file.to_csv('C:\공공데이터\market_v2.csv', encoding='cp949')2. 여러개 파일을 컬럼 변경 및 저장 방법이다.
import pandas as pdimport os
DIR_PATH = "C:\공공데이터"def file_filter():FILE_LIST = os.listdir(DIR_PATH)final = []for file in FILE_LIST:if "." in file:address = f'{DIR_PATH}/{file}'final.append(address)
name = ['use_date','line_num','line_name','total_num','take_off_num','register_date']file_list = finaltotal = []for i in file_list:load = pd.read_csv(i, header=None, names=name)load = load.drop(0, axis=0)total.append(load)df = pd.concat(total)df.to_csv('C:\공공데이터\CARD_SUBWAY_MONTH_TOTAL_v4.csv', index=False, encoding='cp949')return df
file_filter()csv 파일이 저장되었다면, 아래의 url 을 참고하여 bigquery에 테이블을 생성한다.
https://amelia-suyeon.tistory.com/45
Bigquery 테이블 생성하기
빅쿼리에 데이터를 업로드 하는 방법은 3가지가 존재한다. 필자는 Google Cloud Storage에서 Bigquery 로 전송하는 방향을 경험해보았고, 그것도 업로드 예정! 이번에는 API에서 간단한 쿼리 조회를 연동
amelia-suyeon.tistory.com
이후 이렇게 확인하면
테이블이 잘 완성 되었음을 확인할 수 있다!
'Backend > Bigquery' 카테고리의 다른 글
Bigquery 이용하여 간단한 where 조건문 걸기 (0) 2023.08.09 Bigquery에 DTS 기능 이용하기 - Data Transfer Service (0) 2023.07.04 Bigquery 이용하여 간단한 select 문 연습하기 (0) 2023.07.03 Bigquery 테이블 vscode에 연동하기 (0) 2023.06.27 Bigquery 테이블 생성하기 (0) 2023.06.27