Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/google-sheets/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用Python识别Google工作表中的第一个空列以附加数据帧?_Python_Google Sheets_Pygsheets - Fatal编程技术网

如何使用Python识别Google工作表中的第一个空列以附加数据帧?

如何使用Python识别Google工作表中的第一个空列以附加数据帧?,python,google-sheets,pygsheets,Python,Google Sheets,Pygsheets,我想在已经有一些值的Google工作表中附加一个数据框。我想识别第一个空列并将数据帧附加到那里 目前,我正在使用以下代码将数据框粘贴到Google工作表: import pygsheets gc = pygsheets.authorize(service_file='client_secret.json') sh = gc.open_by_url('URL') wks = sh[0] #Selecting the sheet wks.set_dataframe(df, 'A1') #

我想在已经有一些值的Google工作表中附加一个数据框。我想识别第一个空列并将数据帧附加到那里

目前,我正在使用以下代码将数据框粘贴到Google工作表:

import pygsheets 

gc = pygsheets.authorize(service_file='client_secret.json')
sh = gc.open_by_url('URL') 

wks = sh[0] #Selecting the sheet 
wks.set_dataframe(df, 'A1')
#A1是粘贴数据帧的单元格

我希望能够识别此列“A1”-其中A是Google工作表中的第一个空列,并将我的数据框粘贴到那里

如何使用Python实现这一点?我目前正在使用pygsheets,但我对使用任何其他软件包的解决方案持开放态度。

  • 您希望将第一个空列中的值放入
  • 例如,列“A”、“B”和“C”都有值,您希望从列“D1”中输入新值
  • 您希望使用Python和pygsheets实现这一点
如果我的理解是正确的,这次修改怎么样?此修改的流程如下所示

  • 使用
    获取所有值()
    检索现有值
  • 检索第一个空列号
  • 将列编号转换为列字母
  • 将附加值放入检索到的列
  • 修改脚本: 请按如下方式修改问题中的脚本

    发件人: 致: 注:
    • 我在上面修改的脚本中使用了“numpy”

    如果我误解了你的问题,而这不是你想要的结果,我道歉。

    @Pechi谢谢你的回答。若我的回答对你们的情况并没有用,我很抱歉。你们能帮我重新写一下,在第一个空行而不是列中添加新数据吗?我很难理解这段代码。@mama dede你能通过包含详细信息将你的问题作为新问题发布吗?通过发布,包括我在内的用户可以想到解决方案。我的回答是否向您展示了您想要的结果?你能告诉我这件事吗?这对我的学习也很有用。如果这样做有效,其他与你有相同问题的人也可以将你的问题作为可以解决的问题。如果你对我的回答还有疑问,我道歉。那时候,我可以问一下你目前的情况吗?我想学习来解决你的问题。非常感谢。你的回答很有帮助。然而,我的最终解决方案有点不同。我一会儿就把它贴在这里。我无法在评论中正确发布代码。感谢您的回复。我深感抱歉,我的回答不是直接的解决办法。
    wks.set_dataframe(df, 'A1')
    
    import numpy as np  # Added
    
    v = wks.get_all_values()
    ar = np.array(v).transpose()
    for i, e in enumerate(ar):
        r = any(x for x in e)
        if r is False:
    
            # https://stackoverflow.com/a/23862195/7108653
            n = i + 1
            string = ''
            while n > 0:
                n, remainder = divmod(n - 1, 26)
                string = chr(65 + remainder) + string
    
            wks.set_dataframe(df, string + "1")
            break