【问题标题】:How to identify the first empty column in a Google Sheet to append a dataframe using Python?如何识别 Google 表格中的第一个空列以使用 Python 附加数据框?
【发布时间】:2019-06-13 02:09:47
【问题描述】:

我想将一个数据框附加到已经有一些值的 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,尽管我对使用任何其他包的解决方案持开放态度。

【问题讨论】:

  • 我的回答是否向您展示了您想要的结果?你能告诉我吗?这对我学习也很有用。如果这可行,与您有相同问题的其他人也可以将您的问题作为可以解决的问题。如果您对我的回答有疑问,我深表歉意。到时候,可以问一下你现在的情况吗?我想学习解决你的问题。
  • 嗨。谢谢!你的回答很有帮助。但是,我的最终解决方案有点不同。一会儿我会在这里贴出来。我无法在 cmets 中正确发布代码。
  • 感谢您的回复。对于我的回答不是直接的解决方案,我深表歉意。

标签: python google-sheets pygsheets


【解决方案1】:
  • 您想放置第一个空列中的值。
  • 例如,“A”、“B”和“C”列有值,您想从“D1”列中放入新值。
  • 您希望使用 Python 和 pygsheets 来实现这一目标。

如果我的理解是正确的,那么这个修改呢?本次修改的流程如下。

  1. 使用get_all_values() 检索现有值。
  2. 检索第一个空列号。
  3. 将列号转换为列字母。
  4. 将附加值放入检索到的列。

修改脚本:

请在您的问题中修改您的脚本,如下所示。

从:
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

注意:

  • 我在上面修改过的脚本中使用了“numpy”。

如果我误解了您的问题并且这不是您想要的结果,我深表歉意。

【讨论】:

  • @Pechi 感谢您的回复。如果我的回答对您的情况没有帮助,我深表歉意。
  • 您能帮忙重新编写一下,以便在第一个空行而不是列中添加新数据吗?我很难理解这段代码。
  • @mama dede 您能否通过包含详细信息将您的问题作为新问题发布?通过发布,包括我在内的用户都可以想到解决方案。
猜你喜欢
  • 2022-12-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-07-29
  • 2018-10-01
  • 2021-07-18
  • 2019-09-08
  • 2019-10-27
相关资源
最近更新 更多