2016-01-30 23 views
7

У меня есть это gz file от dati.istat.it: внутри его файл csv (с другим именем), который я хочу загрузить прямо в pandas dataframe.Загрузите непосредственно gz-файл в pandas dataframe

Если я разархивировать с 7zip я легко загрузить с этим кодом pd.read_csv("DCCV_OCCUPATIT_Data+FootnotesLegend_175b2401-3654-4673-9e60-b300989088bb.csv", sep="|", engine = "python")

, как я могу это сделать без разархивирует с 7zip Фрист?

thx много!

+1

Вы можете попробовать добавить параметр 'сжатие =«gzip'' к '' read_csv' или сжатие =»infer'' – jezrael

+0

Попеременно @jezrael, вы можете сделать из распаковки в вашем скрипте Python с' subprocess' модуль. – boardrider

ответ

5

Вы можете использовать библиотеку 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") 

Панды поддерживает только gzip и bz2 в read_csv:

сжатие: { 'GZIP', 'BZ2', 'вывести', None }, значение по умолчанию 'infer'

Для декомпрессии данных на диске на лету. Если «infer», то используйте gzip или bz2, если filepath_or_buffer - строка, заканчивающаяся на «.gz» или «.bz2» соответственно, и без декомпрессии иначе. Установите значение «Нет» без декомпрессии.

+0

thx вас много! работать очень хорошо! :) – SocraM

Смежные вопросы