2015-11-02 17 views
5

के साथ एक HDF स्टोर में एक महत्वपूर्ण/तालिका हटाई जा रही वहाँ एक pyTables विधि निम्न के समान है:अजगर

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

मैं अनिवार्य रूप से चाबियों का HDF5 स्टोर की सूची तक पहुँचने के लिए, एक है कि कोई भी लगता है कोशिश कर रहा हूँ लंबे समय तक वांछित (इस मामले में यह मिनट है(), अगर दुकान कुंजी उदाहरण के लिए दिनांक थे), और फिर दुकान से उस कुंजी को दूर करते हैं जबकि अन्य संरक्षण।

पांडा के लिए इसके लिए कुछ भी प्रतीत नहीं होता है और मैंने पाइथन में एचडीएफ कार्यक्षमता को प्रभावित करने के बाद पीईटीबेल विधियों को देखा नहीं है।

धन्यवाद!

+1

आपका प्रश्न बहुत अजीब है। आप '' .remove (...) '' विधि है जो (जो एक पांडा/HDFStore विधि है) के रूप में वर्णित बिल्कुल वही करती प्रयोग कर रहे हैं। – Jeff

उत्तर

4

पांडा ठीक करता है कि आप क्या चाहते। remove समारोह pandas/io/pytables.py का हिस्सा (v0.19.1 here लिए उपलब्ध है) है और यह एक शर्त द्वारा एक नोड के भीतर कुंजी, या पंक्तियों से एक नोड निकाल देंगे।

एचडीएफ 5 हटाने के बाद आपके स्टोर के आकार को समायोजित नहीं करता है (SO answer देखें), इसलिए सलाह दी जाती है कि आप अपने स्टोर को फिर से संपीड़ित/पुन: व्यवस्थित करें। आप इसे कमांड लाइन से कर सकते हैं (SO answer से):

ptrepack --chunkshape=auto --propindexes --complib=blosc test.h5 out.h5 
+0

[यह] (https://github.com/jackdotwa/python-concepts/blob/master/hdf5/reclaiming_space.ipynb) को दर्शाता है यह फायदा नहीं है। –