-
[Python] Google spread sheet 로 데이터 관리하기Programming 2022. 8. 21. 12:30
나중에 python 을 활용해서 주식 데이터나 부동산 데이터를 분석하는 법을 다룰 테지만, 이번 포스팅에서는 결과를 어떻게 정리할 수 있을까에 대해 고민해보자.
분석 알고리즘을 정해두고 데이터만 업데이트해서 결과를 뽑고 싶다면, 우리가 흔히 말하는 "자동화"를 시켜야한다.
서버를 활용해서 주기적으로 데이터를 수집/분석할 수 있도록 하고, 그 결과 역시 지속적으로 관리를 해줘야한다.
csv 또는 xlsx 등 파일 형태로 결과를 관리할 수도 있지만 다른 기기를 통해서도 결과를 확인하고 싶다면 google spread sheet 를 활용하는 것을 추천한다.
그럼 필요한 package 설치부터 예제 코드까지 한 번 살펴보자.
1. package 설치
- 아래에 있는 명령어를 활용해, 세 가지 package 를 설치해주면 된다.- pip install gspread
- pip install oauth2client
- pip install gspread_dataframe
한 번에 여러 package 를 설치하려면, 아래처럼 package 명을 공백으로 구분해주면 된다.
- pip install gspread oauth2client gspread_dataframe
2. goole spread sheet 에 쓰기 권한을 가질 수 있도록 setting- google spread sheet API 를 활용하기 위해, 우선 권한을 부여받아야 한다. 아래 링크에 접속해서 서비스 계정 및 비공개 key 를 생성해보자.https://console.developers.google.com/
Google 클라우드 플랫폼
로그인 Google 클라우드 플랫폼으로 이동
accounts.google.com
1) 프로젝트 생성
프로젝트 생성 - Step 1 프로젝트 생성 - Step 2 프로젝트 생성 - Step 3
2) 사용자 인증 정보 추가 (만든 프로젝트 선택 후)사용자 인증 정보 추가 - Step 1 사용자 인증 정보 추가 - Step 2 사용자 인증 정보 추가 - Step 3 사용자 인증 정보 추가 - Step 4
3) 비공개 key 생성 (만든 계정 선택한 후)비공개 key 설정 - Step 1 비공개 key 설정 - Step 2 이렇게 따라하면 json 파일로 key 가 생성되고, 로컬에 저장된다. 그 중 client_email 부분을 따로 복사한다.생성된 key 내부 내용
4) Google spread sheet 생성 및 마무리 설정
- Google spread sheet 를 생성하고, 복사한 client_email 에게 공유한다.
- 생성한 sheet 의 url 을 복사해서 다운받았던 key json 파일 함께 아래 코드에 추가하면, spread sheet API 로 접근하여 부여받은 권한을 사용할 수 있다. (뷰어, 편집자 등)spread sheet 에 key 의 client_email 공유 생성한 spread sheet 의 url 3. 예제코드import gspread from oauth2client.service_account import ServiceAccountCredentials import os from gspread_dataframe import set_with_dataframe def write(sheetname, df): scope = ['https://spreadsheets.google.com/feeds','https://www.googleapis.com/auth/drive',] json_file_name = os.path.join(os.getcwd(), '다운받은 json 파일명') #다운받은 json file 위치 credentials = ServiceAccountCredentials.from_json_keyfile_name(json_file_name, scope) gc = gspread.authorize(credentials) spreadsheet_url = '위에서 복사한 sheet 의 url' #document 가져오기 doc = gc.open_by_url(spreadsheet_url) #sheet 선택하기 worksheet = doc.worksheet(sheetname) set_with_dataframe(worksheet, df) # 함수 호출 # df 라는 이름의 dataframe 이 있다고 가정 write('sheet1', df)
예제로 함수를 만들어놨으니, 마지막 코드처럼 함수를 호출할 때 sheet 정보와 쓰고자 하는 데이터를 넘겨주면 된다.'Programming' 카테고리의 다른 글
[Python] 퀀트 투자 기법 적용하기 Part 2. (미국편) (0) 2022.09.03 [Python] 퀀트 투자 기법 적용하기 Part 1. (미국편) (2) 2022.08.28 [Python] yahoo finance 에서 원하는 정보 긁어오기 (미국편) (2) 2022.08.24 [Python] 데이터 분석을 위한 기초 문법 (0) 2022.08.20 [Python] Anaconda 설치하기 (0) 2022.08.19