当前位置: 首页 > 面试题库 >

将Google Spreadsheet CSV导入Pandas数据框

邵浩大
2023-03-14
问题内容

我将文件上传到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'])

一个“干净”的解决方案将对许多人有所帮助,以提供一种简便的方法来共享数据集供熊猫使用!我尝试了一堆替代方法都没有成功,而且我很确定自己会再次错过一些显而易见的事情。

只是更新说明新的Google电子表格具有不同的URL模式只需使用它代替上面的示例和/或下面的答案中的URL,那么这里的示例是可以的:

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

请参阅@Max Ghenis的以下解决方案,该解决方案仅使用了pd.read_csv,不需要StringIO或请求…


问题答案:

您可以read_csv()在一个StringIO对象上使用:

from io import BytesIO

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

In [10]: df = pd.read_csv(BytesIO(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

    Inventory_exp  Price_exp  Credit_exp  
0               2          3           3  
10              4          4           3  
12              2          2           3  
38              3          3           2  
44              4          4           4


 类似资料:
  • 问题内容: Hy 我是python的新手,我想使用此简单查询将一些数据从Oracle数据库导入python(pandas数据框) 我做了什么 但是我有这个错误 我做错了什么? 谢谢 问题答案: 您需要正确引用SQL查询。如果您查看问题(或IDE)中突出显示的语法,则会注意到单引号没有按预期工作。 将最外面的引号更改为双引号-如果要在一行上全部使用-或将三引号更改为多行:

  • 问题内容: 我需要分析mongodb中的集合中有大量数据。如何将这些数据导入熊猫? 我是pandas和numpy的新手。 编辑:mongodb集合包含带有日期和时间标记的传感器值。传感器值是float数据类型。 样本数据: 问题答案: 可能会帮助您,以下是我正在使用的一些代码:

  • 我有一个脚本可以将一整串CSV输出到文件夹C:\scripts\csv。这个特定的脚本循环了所有的数据流,并计算了数据集中前100个单词的使用情况。前100个单词及其计数被添加到一个列表中,数据流被串联,然后csv应该导出。打印包含正确的信息,但脚本不输出任何文件。

  • 我正在尝试将mysql数据库导入新版本的xampp(v7.1.8)。按下导入按钮后,我收到数百条此错误消息: 请注意.\vendor\phpmyadmin\sql parser\src\UtfString.php#128未初始化字符串偏移量:516 回溯 .\vendor\phpmyadmin\sql parser\src\Lexer.php\823:phpmyadmin\SqlParser\Ut

  • 我在pandas中有一个数据帧,我想把它写到CSV文件中。我使用的是: 并得到错误: 有没有什么方法可以很容易地解决这个问题(例如,我的数据帧中有unicode字符)?还有,有没有一种方法可以使用“to-tab”方法(我认为不存在)写入以制表符分隔的文件,而不是CSV?