Sto cercando di scrivere un dataframe a un csv gzipped in panda pitone, utilizzando il seguente:applicare la compressione GZIP in un file CSV in Python Pandas
import pandas as pd
import datetime
import csv
import gzip
# Get data (with previous connection and script variables)
df = pd.read_sql_query(script, conn)
# Create today's date, to append to file
todaysdatestring = str(datetime.datetime.today().strftime('%Y%m%d'))
print todaysdatestring
# Create csv with gzip compression
df.to_csv('foo-%s.csv.gz' % todaysdatestring,
sep='|',
header=True,
index=False,
quoting=csv.QUOTE_ALL,
compression='gzip',
quotechar='"',
doublequote=True,
line_terminator='\n')
Questo solo crea un csv chiamato 'foo-YYYYMMDD.csv .gz ', non un vero archivio gzip.
Ho anche provato ad aggiungere questo:
#Turn to_csv statement into a variable
d = df.to_csv('foo-%s.csv.gz' % todaysdatestring,
sep='|',
header=True,
index=False,
quoting=csv.QUOTE_ALL,
compression='gzip',
quotechar='"',
doublequote=True,
line_terminator='\n')
# Write above variable to gzip
with gzip.open('foo-%s.csv.gz' % todaysdatestring, 'wb') as output:
output.write(d)
che non riesce pure. Qualche idea?
Usando ' df.to_csv' con 'compression = 'g zip'' produce un archivio gzip per me. Ho usato gli stessi argomenti per le parole chiave di te. Quale versione di panda come stai usando? Vedi l'output di 'pd .__ version__' per determinare questo. Sembra che gzip non sia stato implementato fino alla 0.17.1, ma provare a usarlo nelle versioni precedenti non produrrà un errore. – root
come ha già detto @root - dovrebbe funzionare proprio così (specificando 'compression = 'gzip''). Non hai bisogno di usare il modulo 'gzip' – MaxU
[qui] (http://stackoverflow.com/a/37012035/5741205) alcuni esempi __tested__. In realtà raccomanderei di passare a HDF5 - è molto più veloce e più conveniente! – MaxU