我想寫一個數據幀在Python大熊貓gzip壓縮的CSV,使用以下:應用GZIP壓縮在Python大熊貓一個CSV
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「富-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