【发布时间】:2013-11-05 20:43:46
【问题描述】:
我将一个文件上传到 Google 电子表格(以制作一个可公开访问的示例 IPython Notebook,其中包含数据)我使用的文件的本机形式可以读入 Pandas Dataframe。所以现在我使用下面的代码来读取电子表格,工作正常,但只是作为字符串输入,而且我没有任何运气试图将它恢复到数据框中(你可以获取数据)
import requests
r = requests.get('https://docs.google.com/spreadsheet/ccc?key=0Ak1ecr7i0wotdGJmTURJRnZLYlV3M2daNTRubTdwTXc&output=csv')
data = r.content
数据最终看起来像:(第一行标题)
',City,region,Res_Comm,mkt_type,Quradate,National_exp,Alabama_exp,Sales_exp,Inventory_exp,Price_exp,Credit_exp\n0,Dothan,South_Central-Montgomery-Auburn-Wiregrass-Dothan,Residential,Rural,1/15/2010,2,2,3,2,3,3\n10,Foley,South_Mobile-Baldwin,Residential,Suburban_Urban,1/15/2010,4,4,4,4,4,3\n12,Birmingham,North_Central-Birmingham-Tuscaloosa-Anniston,Commercial,Suburban_Urban,1/15/2010,2,2,3,2,2,3\n
引入磁盘驻留文件的原生 pandas 代码如下:
df = pd.io.parsers.read_csv('/home/tom/Dropbox/Projects/annonallanswerswithmaster1012013.csv',index_col=0,parse_dates=['Quradate'])
一个“干净”的解决方案将有助于为许多人提供一种共享数据集供 Pandas 使用的简单方法!我尝试了一堆替代方案但没有成功,我很确定我又错过了一些明显的东西。
只是一个更新说明新的 Google 电子表格有一个不同的 URL 模式只需使用它来代替上面示例中的 URL 和/或下面的答案,你应该没问题这是一个示例:
https://docs.google.com/spreadsheets/d/177_dFZ0i-duGxLiyg6tnwNDKruAYE-_Dd8vAQziipJQ/export?format=csv&id
请参阅下面来自 @Max Ghenis 的解决方案,它只使用了 pd.read_csv,不需要 StringIO 或请求...
【问题讨论】:
-
您是如何从驱动器中获取
csv链接的? -
只需在浏览器中打开电子表格并复制网址
-
URL 以
/edit?ts=5c0e311e#gid=0结尾,分享链接以/edit?usp=sharing结尾,没有csv并且在熊猫代码请求时都给出404 -
在文档菜单上使用 csv 格式下载
标签: python pandas google-sheets google-drive-api google-apps