如果您想使用 gspread 将 pandas 数据框导出到 Google 表格,这是我的解决方案:
- 我们无法使用 [row, col] 表示法直观地访问 cell_list 中的元素并将其替换为数据框中的值。
- 但是,存储“cell_list”的元素是按“行”顺序存储的。相对顺序取决于数据框中的列数。元素 (0,0) => 0,5x5 数据帧中的元素 (3,2) 为 17。
- 我们可以构造一个函数,将数据帧中的 [row, col] 值映射到其在列表中的位置:
def getListIndex(nrow, ncol,row_pos, col_pos):
list_pos = row_pos*ncol + col_pos
return(list_pos)
我们可以使用这个函数来更新列表中的正确元素,cell_list,以及数据帧中的相应值,df。
count_row = df.shape[0]
count_col = df.shape[1]
# note this outputs data from the 1st row
cell_list = worksheet.range(1,1,count_row,count_col)
for row in range(0,count_row):
for col in range(0,count_col):
list_index = getListIndex(count_row, count_col, row, col)
cell_list[list_index].value = df.iloc[row,col]
我们可以将列表 cell_list 的结果输出到我们的工作表中。
worksheet.update_cells(cell_list)