【问题标题】:Load directly gz file into pandas dataframe将 gz 文件直接加载到 pandas 数据框中
【发布时间】:2016-01-30 11:14:48
【问题描述】:

我有这个来自 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 前解压缩,我怎么能做到这一点?

非常感谢!

【问题讨论】:

  • 您可以尝试将参数compression='gzip'添加到read_csvcompression='infer'
  • 替代@jezrael,您可以使用subprocess 模块从Python 脚本中解压缩。

标签: python pandas gzip


【解决方案1】:

你可以使用库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 仅支持read_csv 中的gzipbz2

压缩:{‘gzip’, ‘bz2’, ‘infer’, None},默认‘infer’

用于磁盘数据的即时解压缩。如果是“infer”,则如果 filepath_or_buffer 分别是以“.gz”或“.bz2”结尾的字符串,则使用 gzip 或 bz2,否则不解压缩。设置为 None 表示不解压。

【讨论】:

    猜你喜欢
    • 2017-06-03
    • 1970-01-01
    • 2016-06-08
    • 2020-07-21
    • 2018-11-16
    • 1970-01-01
    • 2020-04-09
    • 1970-01-01
    • 2016-09-19
    相关资源
    最近更新 更多