본문 바로가기

python & django & scipy

[pandas] google sheet 에서 데이터 가져오기

 

문제 상황

회사에서 google sheet 데이터를 받아온 후 그 데이터로 처리해야하는 일이 있었다.

인풋값으로 구글 시트를 다운 받아 해당 엑셀파일을 하나하나 전달받아서 받아와야한다는 점이 비효율적으로 느껴져서

google sheet 데이터를 바로 받아올 수 있는 방법이 없을리가 있겠어? 하고 찾아보니까

google sheet 링크를 file_path에 전달하면 됐다.

 

 

해결

구글 시트에서 파일>공유>웹에 개시 를 통해 링크를 생성할 수 있다.

 

원하는 옵션으로 지정하면 된다.  csv 파일을 가져오는게 빠르기 때문에 나는 csv 파일로 가져왔다.

공유하고싶은 시트도 지정할 수 있다. 

 

 

게시를 누르면 생성된 url을 복사할 수 있는데 그 url을 pandas의 read_csv의 file_path로 넣어주면 된다.

 

 

import pandas as pd

url = 'https://docs.google.com/spreadsheets/d/e/2PACX-1vQ0lUnnKygawEgHeSoMGUfiYPRCRYMKdukgXDAtCGIeJHVWwTxOd50L-btM75m6XBNsMwrRNtftyeO8/pub?gid=0&single=true&output=csv'
df_data = pd.read_csv(url)

 

결론

간단. 

api authorize하는 과정은 꽤 빠른데, 원하는 google sheet를 dataframe으로 읽어오기 까지 5초 정도 걸리는 것 같다.