Я пытаюсь написать dataframe к сжат GZIP CSV в питона панд, используя следующее:Применить сжатие GZIP в CSV в Python панд
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')
Это только создает CSV под названием «Foo-YYYYMMDD.csv .gz ', а не фактический архив gzip.
Я также попытался добавить это:
#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)
которая не так хорошо. Есть идеи?
Использование ' df.to_csv' с 'compression = 'g zip'' создает для меня архив gzip. Я использовал те же ключевые слова, что и вы. Какую версию панд вы используете? См. Вывод 'pd .__ version__', чтобы определить это. Похоже, что gzip не был реализован до 0.17.1, но попытка использовать его в более ранних версиях не приведет к ошибке. – root
как @root уже сказал - он должен работать так же (с указанием 'compression = 'gzip''). Вам не нужно использовать модуль 'gzip' – MaxU
[здесь] (http://stackoverflow.com/a/37012035/5741205) - это некоторые примеры __tested__. На самом деле я бы рекомендовал переключиться на HDF5 - это намного быстрее и удобнее! – MaxU