2015-11-02 6 views
5

Gibt es ein pyTables Verfahren ähnlich den folgenden:in einem HDF Shop einen Schlüssel/Tabelle löscht mit Python

with pd.get_store(my_store) as store: 
     keys = store.keys() 
     rem_key = min(sorted(keys)) 
     store.remove(rem_key) 

Ich versuche, im Wesentlichen des HDF5 Geschäfts der Liste der Schlüssel für den Zugriff auf die eine, die keine ist länger gewünscht (in diesem Fall ist es die min(), wenn die Speicherschlüssel zum Beispiel Daten waren), und dann entfernen Sie diesen Schlüssel aus dem Geschäft, während die anderen erhalten.

Pandas scheint nichts dafür zu haben und ich habe über pyTables Methoden vergebens gesucht, nachdem sie gelesen haben, beeinflussen sie HDF Funktionalität in Python.

Danke!

+1

Sie Frage ist sehr seltsam. Sie benutzen die '' .remove (...) '' Methode, die genau wie beschrieben funktioniert (was eine pandas/HDFStore Methode ist). – Jeff

Antwort

4

Pandas macht genau das, was Sie wollen. Die remove Funktion ist Teil von pandas/io/pytables.py (verfügbar für v0.19.1 here) und es wird einen Knoten nach Schlüssel oder Zeilen innerhalb eines Knotens durch eine Bedingung entfernen.

HDF5 passt die Größe Ihres Geschäftes nach dem Entfernen nicht an (siehe SO answer), daher ist es ratsam, Ihr Geschäft hin und wieder zu komprimieren/neu zu strukturieren. Sie können dies über die Befehlszeile mit (von SO answer) tun:

+0

[This] (https://github.com/jackdotwa/python-concepts/blob/master/hdf5/reclaiming_space.ipynb) demonstriert, wie es verwendet wird. –