我只想得到csv.gz文件中超过400万行的前100行。我还需要关于列和每个列的标题的信息。我该怎么做?
我查看了python: read lines from compressed text files以了解如何打开该文件,但我正在努力了解如何实际打印前100行并获取列中信息的元数据。
我发现了这一点,但不确定如何将其与打开csv.gz文件并在不保存未压缩csv文件的情况下读取该文件相结合。
我写了这段代码:

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是个新手,我不了解结果。我确信我的代码是错误的,我一直在尝试调试它,但我不知道要查看哪个文档。
我得到了这些结果(它一直在控制台下面-这是一个摘录):
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

最佳答案

除了read_csv还有nrows可以指定数据集中需要的行数之外,您已经做了很多工作。
此外,为了防止出现错误,可以将error_bad_lines设置为False。您仍然会收到警告(如果这让您感到困扰,请将warn_bad_lines设置为False)。这些是为了表明数据集的填写方式不一致。

import pandas as pd
data = pd.read_csv('google-us-data.csv.gz', nrows=100, compression='gzip',
                   error_bad_lines=False)
print(data)

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

关于python - 在Python中打开csv.gz文件并打印前100行,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39645804/

10-12 22:03
查看更多