将 gz 文件直接加载到 pandas 数据帧中

Load directly gz file into pandas dataframe

我有来自 dati.istat.it 的 gz file:其中有一个 csv 文件(具有不同的名称),我想直接加载到 pandas 数据帧中。

如果我使用 7zip 解压缩,我可以轻松加载此代码 pd.read_csv("DCCV_OCCUPATIT_Data+FootnotesLegend_175b2401-3654-4673-9e60-b300989088bb.csv", sep="|", engine = "python")

如果不先用 7zip 解压缩,我怎么能做到这一点?

非常感谢!

您可以使用库 zipfile:

import pandas as pd
import zipfile

z = zipfile.ZipFile('test/file.gz')
print pd.read_csv(z.open("DCCV_OCCUPATIT_Data+FootnotesLegend_175b2401-3654-4673-9e60-b300989088bb.csv"),
                  sep="|",
                  engine = "python")

Pandas 仅支持 gzipbz2 in read_csv:

compression : {‘gzip’, ‘bz2’, ‘infer’, None}, default ‘infer’

For on-the-fly decompression of on-disk data. If ‘infer’, then use gzip or bz2 if filepath_or_buffer is a string ending in ‘.gz’ or ‘.bz2’, respectively, and no decompression otherwise. Set to None for no decompression.