将 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 仅支持 gzip
和 bz2
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.
我有来自 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 仅支持 gzip
和 bz2
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.