【问题标题】:Writing dataframe values to google sheet through gspread_dataframe通过 gspread_dataframe 将数据框值写入谷歌表
【发布时间】:2021-10-12 15:31:51
【问题描述】:

我正在从事一种自动化工作,包括将数据帧的值发送到谷歌表格,以下是我的示例数据帧代码,类似于我正在处理的代码:

#Creates a dictionary containing values for 1 column to be used in pandas dataframe
col =  {'id':["1"],'name':["Juan"], 'code':["1563"], 'group':["3"], 'class':["A"]}

#Creates a pandas dataframe 
df = pd.DataFrame(col)

df

我只需要将数据帧值发送到谷歌表,没有标题,这只是我正在使用的数据的一个示例,当然我需要数据帧中的标题,因为我正在做一些列转换由于数据来自 API。

这是将数据框发送到谷歌表的代码:

import gspread
from gspread_dataframe import set_with_dataframe

gc = gspread.service_account(filename='API_creds.json')
sheet = gc.open_by_key('SHEET_ID')

# Sending values from aimleap dataframe google sheet
row=1
col=1
worksheet = sheet.get_worksheet(0)
set_with_dataframe(worksheet,df,row,col)

通过set_with_dataframe(worksheet,df,row,col) 将数据框发送到工作表后,工作表会使用包括标题在内的数据框进行更新,我只需要使用数据框的值来更新工作表,如何将set_with_dataframe() 的参数修改为实现这个?

这是发送数据帧时的样子:

【问题讨论】:

    标签: python google-sheets gspread


    【解决方案1】:

    您应该能够通过将 include_column_header 参数设置为 False 来做到这一点。

    set_with_dataframe(worksheet,df,row,col, include_column_header=False)
    

    【讨论】:

    • 谢谢,诺里,它起作用了,另一个问题,所以每次我运行脚本时如何将数据帧的值添加到新行,这意味着如果我将值发送到行,它会第二次运行=1 它们将被覆盖。 set_with_dataframe 中是否有我可以设置的参数,以便我可以获取 google sheet 中的下一个空行,然后将值写入 row=?
    • 这是在同一代码中还是在再次运行代码时?
    • 在相同的代码或不同的代码块中,我认为它也可以,请告诉我如何做到这一点,谢谢!
    • 答案确实取决于你想要做什么,你能提供更多细节吗?
    • 是的,当然,所以我运行脚本的第一天,它会在谷歌表中写入来自 de 数据帧的行,因为我将 row=1 作为参数传递,所以我该怎么做自动化它,所以脚本知道谷歌表中的下一个空单元格是 2,这将是脚本写入数据的行,脚本执行的第二天,如果写入 row=1,数据将被覆盖,这不是我想要的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-07-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多