का उपयोग करके एचडीएफ स्टोर से पूछताछ कैसे करें I विश्लेषण करने में राम की मात्रा का प्रबंधन करने के लिए, मेरे पास hdf5 (.h5) में संग्रहीत एक बड़ा डेटासेट है और मुझे पांडों का उपयोग करके कुशलता से इस डेटासेट से पूछताछ करने की आवश्यकता है।पांडस/पायथन
डेटा सेट में ऐप्स के सूट के लिए उपयोगकर्ता प्रदर्शन डेटा शामिल है। मैं केवल 40 में से कुछ फ़ील्ड खींचना चाहता हूं, और फिर परिणामी डेटाफ्रेम को केवल उन उपयोगकर्ताओं को फ़िल्टर करना चाहता हूं जो मुझे रुचि रखने वाले कुछ ऐप्स में से एक का उपयोग कर रहे हैं।
# list of apps I want to analyze
apps = ['a','d','f']
# Users.h5 contains only one field_table called 'df'
store = pd.HDFStore('Users.h5')
# the following query works fine
df = store.select('df',columns=['account','metric1','metric2'],where=['Month==10','IsMessager==1'])
# the following pseudo-query fails
df = store.select('df',columns=['account','metric1','metric2'],where=['Month==10','IsMessager==1', 'app in apps'])
मुझे एहसास है कि स्ट्रिंग 'ऐप में ऐप' वह नहीं है जो मैं चाहता हूं। यह केवल एक एसक्यूएल-जैसा प्रतिनिधित्व है जिसे मैं प्राप्त करने की आशा करता हूं। मैं कोशिश करता हूं कि तारों की एक सूची किसी भी तरह से मैं कोशिश करता हूं, लेकिन एक रास्ता होना चाहिए।
के लिए अब मैं बस इस पैरामीटर के बिना क्वेरी चला रहा हूँ और फिर मैं बाद में एक कदम thusly
df = df[df['app'].isin(apps)]
में क्षुधा मैं नहीं करना चाहती को फ़िल्टर लेकिन यह सभी ऐप्स के बाद से बहुत कम कुशल है इससे पहले कि मैं उन्हें हटा सकूं, पहले स्मृति में लोड होने की आवश्यकता है। कुछ मामलों में, यह बड़ी समस्या है क्योंकि मेरे पास पूरे unfiltered डीएफ का समर्थन करने के लिए पर्याप्त स्मृति नहीं है।
मैं सहायता की सराहना करता हूं। यह मेरा पहला स्टैक ओवरफ्लो प्रश्न है, इसलिए किसी भी सलाह का भी स्वागत है।
धन्यवाद @ जेफ। यह बहुत अच्छा काम किया –