如果您想使用 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)