2017-03-07 9 views
2

내 서버에있는 csv 파일에서 1.18MB 또는 약 10,000 행의 데이터를 Tableau 용 Google 시트로 푸시해야 읽을 수 있습니다.Google 스프레드 시트에 파이썬으로 데이터를 푸시하는 가장 빠른 방법은 무엇입니까

데이터가 Google DFP에서 csv 문서로 전송됩니다. 나는 gspread 라이브러리를 사용하여 이전에 csv 데이터로 Google 시트를 업데이트했지만 10,000 레코드 및 레코드 당 30 초 ~이 방법은 유효하지 않습니다.

gspread 라이브러리를 사용하는 것보다 csv/txt 파일의 내용을 Google 스프레드 시트로 복사하는 더 빠른 방법이 있습니까? Python을 사용하는 것이 바람직합니다.

업데이트 : 저는이 방법으로 셀을 대량 업데이트하려고합니다.

raw_dfp = pd.read_csv('live_dfp_UTF.csv', error_bad_lines=False) 
sample5 = raw_dfp.iloc[:3, :] 
rows, col = sample5.shape 

doc.resize(1, 7) 
doc.clear() 
doc.resize(rows + 1, col) 

column_names = ['', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K'] 

cell_range = 'A1:' + column_names[col] + str(rows) 

cells = doc.range(cell_range) 

# To use this next line?? 
# flattened_data = np.flatten(sample5) 

for x in range(rows): 
    cells[x].value = sample5[x].decode('utf-8') 

doc.update_cells(cells) 
+1

제안 된 대답이 작동하지 않는 경우 : 30 초가 한 레코드에 오래 걸린 것처럼 보입니다. 그러나 많은 오버 헤드를 추가하고 전달하는 데이터가 그리 많지 않은 것은 API 호출입니다. 열 개수에 따라 한 번에 ~ 200 행의 청크로 밀어 넣으면 나에게 한 행을 푸는 것보다 거의 무시할 수있는 추가 시간이 소요됩니다. 그러나 한 번의 업데이트로 얼마만큼 밀어 넣을 수 있는지에 대한 상한선이 있습니다. – roganjosh

+0

답변 : [여기] (http://stackoverflow.com/questions/34640175/can-i-write-whole-lines-in-google-spreadsheets-using-gspread-in-python/34837122#34837122) for 도움이 될만한 일을합니다. – roganjosh

+0

@roganjosh 질문의 본문에 넣어서 업데이트를 살펴볼 수 있습니까? 평평한 선 이후에해야 할 일을 이해하는 데 어려움을 겪고 있습니다. –

답변

3

왜 전체 스프레드 시트를 Google에 밀어 후 팬더 dataframe에 csv 파일의 모든 데이터를로드하지?

이 라이브러리는 유용 할 수 있습니다 https://github.com/maybelinot/df2gspread

+0

시스템 인증에 문제가있었습니다. 안타깝게도 구현에 대한 매우 강력한 지식 기반이 아닙니다. –

1

당신은 V3보다 빠른 API를 V4를 사용 pygsheets을 시도 할 수 있습니다. 그것은 또한 pandas 데이터 프레임에서 데이터를 푸시하는 것을 지원합니다. 내가 Shivam, df2gspread를 사용하여이 될 것입니다 파이썬 팬더와 그 반대로 구글 스프레드 시트를 전송하는 가장 좋은 방법에 동의

0

: http://df2gspread.readthedocs.io/en/latest/overview.html#usage1

이 설정 10 분 정도 소요되며 코드의 3 라인들을 할 수 트릭 :

from df2gspread import gspread2df as g2d 
df = g2d.download(gfile="your_spreadsheet_ID", col_names=True, row_names=True) 

질문이 있으시면 언제든지 질문 해주십시오.

관련 문제