我可以从电子表格和工作表ID中获取Feed.我想从每个单元格中捕获数据.
即,我能够从工作表中获取提要.现在我需要从每个单元格中获取数据(字符串类型?)以进行比较和输入.
我怎么能这样做?
我正在尝试使用gspread在Google电子表格的第一列中找到特定ID的单元格位置.
有没有办法只搜索第一列,而不是整个电子表格?
我一直在使用:gspread.Worksheet(example).findall(query)
但搜索每个单元格非常耗时.
通过使用 GSpread,我从谷歌电子表格返回了一系列单元格,该电子表格的所有元素如下所示:
<Cell R1C1 'Sandero'>
Run Code Online (Sandbox Code Playgroud)
我知道如何从这里获取单元格值:
cell.value
Run Code Online (Sandbox Code Playgroud)
但我也想单独获取地址(在本例中为 R1C1)。如果我能以 (1,1) 格式(也许通过使用字典?)
你看我也需要地址,因为我稍后会用这些值声明一个图表。
我正在使用 Python 2.7 和最新的 Gspread 库。
任何帮助将不胜感激。
我有一个 Json 对象需要上传到 Google 电子表格。我搜索并阅读了各种资源,但找不到解决方案。有没有办法使用 gspread 将对象或 csv 从本地上传到谷歌电子表格。我宁愿不使用谷歌客户端API。谢谢
我正在尝试使用 Gspread for Python 合并 Gsheets 中的单元格,但是我找不到任何文档。
我已使用 gspread_formatting 模块来格式化单元格的文本和颜色,但我找不到与单元格合并有关的任何内容。
我没有编写任何代码,因为我找不到任何示例。
我希望能够根据范围合并单元格。
谁能帮帮我吗?
干杯。
我正在尝试使用 gspread 库使用 python 读取谷歌表。
初始身份验证设置已完成,我可以阅读相应的工作表。
然而当我这样做时
sheet.get_all_records()
Run Code Online (Sandbox Code Playgroud)
包含类似数字值的列(例如 0001,0002,1000)将转换为数字字段。即前导零被截断。如何防止这种情况发生?
我按照此处和此处的步骤操作,但无法将 pandas 数据框上传到谷歌表格。
首先我尝试了以下代码:
import gspread
from google.oauth2.service_account import Credentials
scope = ['https://spreadsheets.google.com/feeds',
'https://www.googleapis.com/auth/drive']
credentials = Credentials.from_service_account_file('my_json_file_name.json', scopes=scope)
gc = gspread.authorize(credentials)
spreadsheet_key = '1FNMkcPz3aLCaWIbrC51lgJyuDFhe2KEixTX1lsdUjOY'
wks_name = 'Sheet1'
d2g.upload(df_qrt, spreadsheet_key, wks_name, credentials=credentials, row_names=True)
Run Code Online (Sandbox Code Playgroud)
上面的代码返回这样的错误消息:AttributeError: module 'df2gspread' has no attribute 'upload'这是没有意义的,因为 df2spread 确实有一个名为 upload 的函数。
其次,我尝试将数据附加到我通过输入列名称在谷歌工作表上人为创建的数据框中。这也不起作用,也没有提供任何结果。
import gspread_dataframe as gd
ws = gc.open("name_of_file").worksheet("Sheet1")
existing = gd.get_as_dataframe(ws)
updated = existing.append(df_qrt)
gd.set_with_dataframe(ws, updated)
Run Code Online (Sandbox Code Playgroud)
任何帮助将不胜感激,谢谢!
我目前正在使用 gspread 将 Google 工作表中的数据检索到 pandas DataFrame 中。为了做到这一点,我只是按照他们的示例https://gspread.readthedocs.io/en/latest/user-guide.html#using-gspread-with-pandas
df = pd.DataFrame(sheet.get_all_records())
df["From"] = pd.to_datetime(df["From"])
df["To"] = pd.to_datetime(df["To"])
Run Code Online (Sandbox Code Playgroud)
它运行良好,但当我想更新电子表格时就会出现问题。
如果我只尝试使用 pandas DataFrame 更新范围:
sheet.update([df.columns.values.tolist()] + df.values.tolist())
Run Code Online (Sandbox Code Playgroud)
我收到以下错误:
Timestamp 类型的对象不可 JSON 序列化
因此,我相信我需要将时间戳转换回字符串:
df["From"] = df["From"].dt.strftime("%Y-%m-%d %H:%M:%S.%f")
df["To"] = df["To"].dt.strftime("%Y-%m-%d %H:%M:%S.%f")
Run Code Online (Sandbox Code Playgroud)
更新效果很好,但数据没有被识别为时间戳:
有没有办法让 Google 电子表格正确识别日期(即正确的格式是什么)?
header=0in的等效项是什么pandas,它将第一行识别为标题 in gspread?
pandas 导入声明(正确)
import pandas as pd
# gcp / google sheets URL
df_URL = "https://docs.google.com/spreadsheets/d/1wKtvNfWSjPNC1fNmTfUHm7sXiaPyOZMchjzQBt1y_f8/edit?usp=sharing"
raw_dataset = pd.read_csv(df_URL, na_values='?',sep=';'
, skipinitialspace=True, header=0, index_col=None)
Run Code Online (Sandbox Code Playgroud)
到目前为止,我使用 gspread 函数导入数据,将第一行更改为标题,然后删除后面的第一行,但这会将 DataFrame 中的所有内容识别为字符串。我想立即将第一行识别为导入声明中的标题。
需要 header=True 等价的 gspread import 语句
import pandas as pd
from google.colab import auth
auth.authenticate_user()
import gspread
from oauth2client.client import GoogleCredentials
# gcp / google sheets url
df_URL = "https://docs.google.com/spreadsheets/d/1wKtvNfWSjPNC1fNmTfUHm7sXiaPyOZMchjzQBt1y_f8/edit?usp=sharing"
# importing the data from Google Drive setup
gc = gspread.authorize(GoogleCredentials.get_application_default())
# read data and …Run Code Online (Sandbox Code Playgroud) 你好,基本上我有这些数据,由名称、项目、原因和时间戳组成,下面是结构
['John Doe', 'Hollywood', 'Good-time', '2022-05-17 15:25:45']
Run Code Online (Sandbox Code Playgroud)
在文档中,它仅显示如何更新单个单元格,但我想更新整行。提前致谢
gspread ×10
python ×8
dataframe ×2
pandas ×2
cell ×1
csv ×1
drive ×1
import ×1
python-2.7 ×1
python-3.x ×1