2014-04-08 5 views
5

एक पांडा DataFrame इस तरह एक HDF5 फाइल करने के लिए परिवर्तित किया जा सकता है;परिवर्तित HDF5 को अजगर SQLite db

df.to_hdf('test_store.hdf','test',mode='w')

मैं एक SQLite db फ़ाइल जो एक HDF5 फाइल करने के लिए परिवर्तित किया है और फिर मैं pd.read_hdf का उपयोग कर पांडा के माध्यम से HDF5 फ़ाइल को पढ़ने जाएगा।

लेकिन पहले मैं कैसे एक HDF5 फाइल करने के लिए एक अजगर SQLite db परिवर्तित?

संपादित करें:

मैं पांडा में .read_sql विधि का उपयोग कर के बारे में पता कर रहा हूँ। लेकिन मैं पहले डीबी को hdf5 में परिवर्तित करना चाहता हूं।

उत्तर

4

यह आश्चर्यजनक रूप से आसान है: उपयोग पांडा!

पांडा एक DataFrame में reading data directly from a SQL database का समर्थन करता है। एक बार जब आप डेटाफ्रेम प्राप्त कर लेंगे, तो आप चाहें तो इसके साथ कर सकते हैं।

लघु उदाहरण, from the docs लिया:

import sqlite3 
from pandas.io import sql 
# Create your connection. 
cnx = sqlite3.connect('mydbfile.sqlite') 

# read the result of the SQL query into a DataFrame 
data = sql.read_sql("SELECT * FROM data;", cnx) 

# now you can write it into a HDF5 file 
data.to_hdf('test_store.hdf','test',mode='w') 
+0

मुझे '.read_sql 'विधि से अवगत है। लेकिन मैं यहां आकार के मुद्दों को संभालने में कामयाब रहा हूं और इसलिए डीबी को पहले एचडीएफ 5 में परिवर्तित करना चाहता हूं। – richie

+0

@richie मैंने एचडीएफ 5 में कनवर्ट करने के लिए अंतिम चरण जोड़ा है। मैंने सोचा कि यह स्पष्ट था, आपका प्रश्न दिया। – Carsten

1

इस पर एक नज़र डालें ---

http://www.tutorialspoint.com/sqlite/sqlite_limit_clause.htm

विचार एक बढ़ती हुई के साथ एक select * from table क्वेरी पुनरावृति और परिणामों को सीमित करने के लिए किया जाएगा ऑफसेट। ऊपर दिखाए गए अनुसार एचडीएफ 5 डेटा स्टोर में परिणाम लिखें। सबसे पहले एक select count(*) from table साथ प्रविष्टियों की संख्या गिनी और फिर इस की एक managble टुकड़ों में साथ यात्रा अलग हो गए। उदाहरण के लिए यदि 4 मिलियन रिकॉर्ड एक समय में 200,000 पढ़ते हैं और 0, 200000, 400000 आदि से ऑफसेट बढ़ाते हैं ...

मुझे इसे एक बहुत बड़ी स्क्लाइट फ़ाइल में करने की आवश्यकता है। अगर यह काम करता है तो रिपोर्ट करेगा।

संबंधित मुद्दे