首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用Python打开csv.gz文件并打印前100行

用Python打开csv.gz文件并打印前100行
EN

Stack Overflow用户
提问于 2016-09-22 17:55:39
回答 4查看 48.2K关注 0票数 21

我试图只获取csv.gz文件的前100行,该文件在Python中有超过400万行。我还需要关于列的#和每个列的标题的信息。我该怎么做?

我查看了python:从压缩文本文件中读取行以了解如何打开该文件,但我很难找到如何实际打印前100行,并在列中的信息中获取一些元数据。

我找到了这个在python中读取文件的第N行,但不知道如何将它与打开csv.gz文件和读取它结合起来,而不保存未压缩的csv文件。

我写了这段代码:

代码语言:javascript
复制
import gzip
import csv
import json
import pandas as pd


df = pd.read_csv('google-us-data.csv.gz', compression='gzip', header=0,    sep=' ', quotechar='"', error_bad_lines=False)
for i in range (100):
print df.next() 

我是Python新手,我不明白结果。我确信我的代码是错误的,我一直试图调试它,但是我不知道应该查看哪些文档。

我得到了这些结果(而且它一直在控制台下运行--这是一个摘录):

代码语言:javascript
复制
Skipping line 63: expected 3 fields, saw 7
Skipping line 64: expected 3 fields, saw 7
Skipping line 65: expected 3 fields, saw 7
Skipping line 66: expected 3 fields, saw 7
Skipping line 67: expected 3 fields, saw 7
Skipping line 68: expected 3 fields, saw 7
Skipping line 69: expected 3 fields, saw 7
Skipping line 70: expected 3 fields, saw 7
Skipping line 71: expected 3 fields, saw 7
Skipping line 72: expected 3 fields, saw 7
EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2016-09-22 18:25:14

除了read_csv还有nrows,您可以从数据集中指定想要的行数。

此外,为了防止所获得的错误,可以将error_bad_lines设置为False。您仍然会收到警告(如果这让您感到困扰,也可以将warn_bad_lines设置为False )。这些都表明数据集的填写方式不一致。

代码语言:javascript
复制
import pandas as pd
data = pd.read_csv('google-us-data.csv.gz', nrows=100, compression='gzip',
                   error_bad_lines=False)
print(data)

您可以很容易地对csv内置库执行类似的操作,但是它需要一个for循环来迭代数据,在其他示例中已经显示了这一点。

票数 34
EN

Stack Overflow用户

发布于 2016-09-22 18:02:50

我认为您可以这样做(从gzip模块示例)

代码语言:javascript
复制
import gzip
with gzip.open('/home/joe/file.txt.gz', 'rb') as f:
    header = f.readline()
    # Read lines any way you want now. 
票数 7
EN

Stack Overflow用户

发布于 2016-09-22 18:06:50

您所链接的第一个答案是使用gzip.GzipFile --这给了您一个像文件一样的对象,可以动态地解压缩。

现在您只需要一些方法将csv数据从类似文件的对象中解析出来.就像csv.reader

csv.reader对象将给出一个字段名列表,这样您就可以知道列、它们的名称以及有多少列。

然后,您需要得到第一个100个csv行对象,它的工作方式与您所链接的第二个问题完全一样,这100个对象中的每一个都是一个字段列表。

到目前为止,除了了解图书馆索引中列出的csv模块的存在外,所有这些都包含在您的链接问题中。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39645804

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档