[Python] Google spread sheet 로 데이터 관리하기
나중에 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

https://console.developers.google.com/
Google 클라우드 플랫폼
로그인 Google 클라우드 플랫폼으로 이동
accounts.google.com
1) 프로젝트 생성
2) 사용자 인증 정보 추가 (만든 프로젝트 선택 후)
3) 비공개 key 생성 (만든 계정 선택한 후)
4) Google spread sheet 생성 및 마무리 설정
- Google spread sheet 를 생성하고, 복사한 client_email 에게 공유한다.
- 생성한 sheet 의 url 을 복사해서 다운받았던 key json 파일 함께 아래 코드에 추가하면, spread sheet API 로 접근하여 부여받은 권한을 사용할 수 있다. (뷰어, 편집자 등)
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)