gpt4 book ai didi

python - 在 Pandas 中加载通用的 Google 电子表格

转载 作者:太空狗 更新时间:2023-10-29 22:26:18 28 4
gpt4 key购买 nike

当我尝试在 pandas 中加载 Google 电子表格时

from StringIO import StringIO  
import requests
r = requests.get('https://docs.google.com/spreadsheet/ccc?key=<some_long_code>&output=csv')
data = r.content
df = pd.read_csv(StringIO(data), index_col=0)

我得到以下信息:

CParserError: Error tokenizing data. C error: Expected 1316 fields in line 73, saw 1386

为什么?我认为可以用数据识别电子表格行和列集,并将电子表格行和列分别用作数据框索引和列(NaN 表示任何空值)。为什么会失败?

最佳答案

我的这个问题说明了如何 Getting Google Spreadsheet CSV into A Pandas Dataframe

正如其中一位评论员指出的那样,您没有要求提供 CSV 格式的数据,您在网址末尾有“编辑”请求您可以使用此代码并查看它在电子表格上的工作情况(顺便说一下,它需要公开..)也可以做私有(private)工作表,但这是另一个话题。

from StringIO import StringIO  # got moved around in python3 if you're using that.

import requests
r = requests.get('https://docs.google.com/spreadsheet/ccc?key=0Ak1ecr7i0wotdGJmTURJRnZLYlV3M2daNTRubTdwTXc&output=csv')
data = r.content

In [10]: df = pd.read_csv(StringIO(data), index_col=0,parse_dates=['Quradate'])

In [11]: df.head()
Out[11]:
City region Res_Comm \
0 Dothan South_Central-Montgomery-Auburn-Wiregrass-Dothan Residential
10 Foley South_Mobile-Baldwin Residential
12 Birmingham North_Central-Birmingham-Tuscaloosa-Anniston Commercial
38 Brent North_Central-Birmingham-Tuscaloosa-Anniston Residential
44 Athens North_Huntsville-Decatur-Florence Residential

mkt_type Quradate National_exp Alabama_exp Sales_exp \
0 Rural 2010-01-15 00:00:00 2 2 3
10 Suburban_Urban 2010-01-15 00:00:00 4 4 4
12 Suburban_Urban 2010-01-15 00:00:00 2 2 3
38 Rural 2010-01-15 00:00:00 3 3 3
44 Suburban_Urban 2010-01-15 00:00:00 4 5 4

用于获取 csv 输出的新 Google 电子表格 url 格式是

https://docs.google.com/spreadsheets/d/177_dFZ0i-duGxLiyg6tnwNDKruAYE-_Dd8vAQziipJQ/export?format=csv&id

好吧,他们再次稍微更改了 url 格式,现在您需要:

https://docs.google.com/spreadsheets/d/177_dFZ0i-duGxLiyg6tnwNDKruAYE-_Dd8vAQziipJQ/export?format=csv&gid=0 #for the 1st sheet

我还发现我需要执行以下操作来处理 Python 3 对上述内容的轻微修改:

from io import StringIO 

获取文件:

guid=0 #for the 1st sheet
act = requests.get('https://docs.google.com/spreadsheets/d/177_dFZ0i-duGxLiyg6tnwNDKruAYE-_Dd8vAQziipJQ/export?format=csv&gid=%s' % guid)
dataact = act.content.decode('utf-8') #To convert to string for Stringio
actdf = pd.read_csv(StringIO(dataact),index_col=0,parse_dates=[0], thousands=',').sort()

actdf 现在是一个带有标题(列名)的完整 pandas 数据框

关于python - 在 Pandas 中加载通用的 Google 电子表格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24063629/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com