【问题标题】:Update existing google sheet with a pandas data frame and gspread使用 pandas 数据框和 gspread 更新现有的 google sheet
【发布时间】:2017-08-04 03:57:25
【问题描述】:

我想使用 pandas 数据框更新 Google 表格文档中的特定标签。我已经查看了 GitHub 和 readthedocs.io 上的文档,并且能够使用以下代码成功更新一定范围的单元格:

cell_list = sheet4.range('A1:A7')
cell_values = [1,2,3,4,5,6,7]

for i, val in enumerate(cell_values):  
    cell_list[i].value = val    

sheet4.update_cells(cell_list)

作为初学者,我在连接点和弄清楚如何使用 Pandas 数据框更新整个工作表时遇到了麻烦。数据框将有 9 列和最多 9,000 行,行数取决于生成数据框的时间。

感谢任何建议。

【问题讨论】:

    标签: python pandas gspread


    【解决方案1】:

    pygsheets 内置了 pandas 支持。

    import pygsheets
    gc = pygsheets.authorize(service_file='file.json')
    
    #open the google spreadsheet 
    sh = gc.open_by_url('url')
    
    #select the first sheet 
    wks = sh[0]
    
    #update the first sheet with df, starting at cell B2. 
    wks.set_dataframe(df, 'B2')
    

    【讨论】:

      【解决方案2】:

      我最终将 pandas 数据框转换为列表并使用 pygsheets 包来更新 google 表格。

      import pygsheets
      gc = pygsheets.authorize(service_file='file.json')
      
      df = df.tolist()
      
      #open the google spreadsheet 
      sh = gc.open_by_url('url')
      
      #select the first sheet 
      wks = sh[0]
      
      #update the first sheet with df, starting at cell B2. 
      wks.update_cells(crange='B2',values = df)
      

      【讨论】:

      【解决方案3】:

      你也可以使用df2gspread库:

      from df2gspread import df2gspread as d2g
      import pandas as pd
      
      # your DataFrame
      df = pd.DataFrame(0, index=range(9000), columns=range(9))
      
      # file ID or path to spreadsheet: '/folder/folder/spreadhsheet'
      spreadsheet = '2VVfq...nhR3I' 
      
      # uploading
      d2g.upload(df, spreadsheet, wks_name="second worksheet")
      

      【讨论】:

        猜你喜欢
        • 2023-03-26
        • 1970-01-01
        • 1970-01-01
        • 2018-09-18
        • 1970-01-01
        • 2023-01-22
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多