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

Mar*_*lli 8 python gzip pandas

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

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

如何在不用7zip frist解压缩的情况下做到这一点?

多谢!

jez*_*ael 6

你可以使用库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")
Run Code Online (Sandbox Code Playgroud)

只大熊猫支持gzipbz2read_csv:

压缩:{'gzip','bz2','推断',无},默认'推断'

用于磁盘上数据的即时解压缩.如果'推断',则如果filepath_or_buffer是分别以'.gz'或'.bz2'结尾的字符串,则使用gzip或bz2,否则不使用解压缩.没有解压缩,设置为"无".