2015-07-26 9 views

Antwort

1

Es sieht aus wie bcolz.ctable hat eine tohdf5 Methode, die Sie verwenden könnten; Allerdings müssen Sie hdf5, pytables usw. installieren. Andernfalls können Sie pickle verwenden, was die übliche Methode ist, ein generisches Python-Objekt auf der Festplatte zu speichern.

Übrigens, wenn Sie nur daran interessiert sind, Ihre Daten zu komprimieren, möchten Sie vielleicht eine eher Low-Tech-Option wie gzip; Die Komprimierung ist genauso gut, wenn nicht sogar besser als ein spaltenförmiges Datenformat, das sich mehr darauf konzentriert, schnelle Abfragen gegen Ihre Daten zu machen.

+0

I haben eine Ausdehnung von bcolz genannt BQUERY ersichtlich, dass die folgenden Befehl verwendet: ct = bquery.ctable (rootdir = 'example.bcolz'). Also ich denke, dass es möglich ist, einen Pandas-Datenrahmen im bcolz-Dateiformat zu speichern. Und nein, ich bin nicht nur daran interessiert zu komprimieren; Ich möchte auch abfragen. –

+0

hmm Blick auf die Dokumente scheint es, dass "Carray" hat einen 'rootpath' Parameter, aber' ctable' doesnt .. aus irgendeinem Grund .... Sie könnten also stattdessen ein 'Carray' verwenden (Sie verlieren jedoch Ihre Spaltennamen) – maxymoo

+1

' ctable' unterstützt auch das 'rootdir' Argument. Siehe: http://bcolz.blosc.org/tutorial.html#tutorial-on-ctable-objects – Francesc

7

Sie müssen lediglich angeben, wo die Tabelle erstellen, wenn Sie lesen in dem Datenrahmen, so wie:

import bcolz 
import pandas as pd 

df = pd.read_csv(open("mydata.csv", 'rb'), delimiter='\t') 
ct = bcolz.ctable.fromdataframe(df, rootdir='dataframe.bcolz') 
+0

rootdir ist ein Verzeichnis keine Datei – wyx