【发布时间】:2021-12-26 19:35:12
【问题描述】:
使用 Python 和 Google API 从 Google Sheet 读取数据时,我很难从数值中获取数值。
在我住的地方,我们使用逗号作为小数分隔符,这似乎是个问题。
Google 表格输入为:
自动格式化。
Python 脚本是:
gc = gspread.service_account(filename="gdocs_access.json")
sh = gc.open("my_file").worksheet("sheet 1")
data = sh.get_all_records(numericise_ignore=["all"])
print(data)
[{'id': 'b', 'value': '200,3'}, {'id': 'c', 'value': '40'}, {'id': 'a', 'value': '-30,5'}]
将所有数值作为字符串返回。
如果我把它放在一个 df 中并将字符串值转换为 int:
data = pd.DataFrame(data)
data['value'].astype(int)
我收到此错误:
ValueError: invalid literal for int() with base 10: '200,3'
显然,将浮点数的字符串表示形式传递给 int 时会导致此错误,但这对我没有多大帮助。首先转换为浮点数对我没有帮助。
有解决办法吗?我确信我不是第一个使用逗号作为十进制并尝试使用 Python 阅读 Google 表格的人。
【问题讨论】:
标签: python-3.x google-sheets google-sheets-api