Python,pandas.read_csv 来自 Google Drive 文件的 1000 万行大型 csv 文件

Posted

技术标签:

【中文标题】Python,pandas.read_csv 来自 Google Drive 文件的 1000 万行大型 csv 文件【英文标题】:Python, pandas.read_csv on large csv file with 10 Million rows from Google Drive file 【发布时间】:2018-04-04 00:34:35 【问题描述】:

我从 Google Bigquery 中提取了一个 2 列 1000 万行的 .csv 文件。

我已经在本地下载了 .csv 文件,大小为 170Mb,然后我将文件上传到 Google Drive,我想使用 pandas.read_csv() 函数将其读入我的 Jupyter Notebook 中的 pandas DataFrame。

这是我使用的代码,带有我想读取的特定文件 ID。

# read into pandasDF from .csv stored on Google Drive.
follow_network_df = pd.read_csv("https://drive.google.com/uc?export=download&id=1WqHWdgMVLPKVbFzIIprBBhe3I9faq4HA")

然后这是我得到的:

170Mb 的 csv 文件似乎被读取为 html 链接?

当我用另一个 40Mb 的 csv 文件尝试相同的代码时,它运行良好

# another csv file of 40Mb.
user_behavior_df = pd.read_csv("https://drive.google.com/uc?export=download&id=1NT3HZmrrbgUVBz5o6z_JwW5A5vRXOgJo")

谁能给我一些关于差异的根本原因的提示? 关于如何从在线存储中读取 1000 万行和 170Mb 的 csv 文件的任何想法?我知道仅使用 BigQuery 接口或从本地计算机就可以将 1000 万行读入 pandasDF,但我必须将其作为我提交的一部分,因此我只能从在线资源中读取。

【问题讨论】:

170mb 文件没有加载,但它看起来在 html 中给出了病毒警告。请复制和粘贴代码,因为图像根本没有帮助.... @johnashu 嗨,老实说,我唯一遇到问题的代码行是:follow_network_df = pd.read_csv("https://drive.google.com/uc?export=download&id=1WqHWdgMVLPKVbFzIIprBBhe3I9faq4HA") 括号内的 url 可用于访问谷歌驱动器上的文件。谢谢 @johnashu 我通过使用 Dropbox 链接来解决这个问题。 分块读取 【参考方案1】:

问题是您的第一个文件太大,Google 云端硬盘无法扫描病毒,因此会显示用户提示而不是实际文件。如果您访问第一个文件的链接,您可以看到这一点。

我会说点击用户提示并使用带有pd.read_csv的以下网址。

【讨论】:

您好,根据建议,我点击了谷歌驱动器中的文件,点击了“下载”按钮,然后获取了网址。使用该网址,我再次尝试使用 pd.read_csv() 。 https://doc-04-2k-docs.googleusercontent.com/docs/securesc/0rmotvlinl4cc8h2a5bls9fhliamgfgi/oh0k0d8arep7pfubo8v2etubhom0rms3/1522800000000/12586420623118277152/12586420623118277152/1QX5SbJxrMa59q97534scstIrsxmh0IK_?e=download 但它引发了错误:ParserError: Error tokenizing data. C error: Expected 1 fields in line 6, saw 2 我通过使用 Dropbox 链接来解决这个问题。

以上是关于Python,pandas.read_csv 来自 Google Drive 文件的 1000 万行大型 csv 文件的主要内容,如果未能解决你的问题,请参考以下文章

Python Pandas 中的引擎 read_csv

来自文件夹嵌套 Zip 文件的 pandas read_csv 的 UnicodeDecodeError ('utf-8')

Python Pandas——Read_csv详解

使用 pandas read_csv 方法的 Python 多级索引

Python Pandas read_csv 函数不允许将解析日期更改为所需格式

Python Pandas read_csv 跳过行但保留标题