CSV में क्या है और डेटाफ़्रेम में क्या है, ये दो अलग-अलग चीज़ें हैं। उदाहरण के लिए, 9.9
और 9.99999999999999
CSV में डेटाफ़्रेम में उतनी ही जगह लेगा.
उस ने कहा, डेटाफ़्रेम में डेटा किसी सूची में डेटा की तुलना में बहुत कम स्थान लेता है। स्मृति में सूची बनाना महंगा है; और डेटाफ़्रेम में जोड़ने के लिए पांडा को एक नया (बड़ा) डेटाफ़्रेम बनाने की आवश्यकता होती है, सब कुछ कॉपी करें, फिर मूल डेटाफ़्रेम को कचरा-एकत्र करने के लिए छोड़ दें।
यदि आप 60000 पंक्तियों (या फिर आपके पास कुल कितनी पंक्तियाँ हैं) के डेटाफ़्रेम का प्रचार-प्रसार करते हैं, तो आप शायद बहुत बेहतर करेंगे; उदा.:
data = pd.DataFrame(np.empty((60000,), dtype=[
('x', np.uint8),
('y', np.float64)
]))
और फिर प्रत्येक पंक्ति के लिए dataset
. पर भरोसा किए बिना, उस पंक्ति के लिए डेटा डाला गया सूची:
data.values[count,:] = rowdata_at_count
यह टाइप-सुरक्षित नहीं है, लेकिन यह बहुत तेज़ है (चूंकि कोई आवंटन नहीं हो रहा है), इसलिए सुनिश्चित करें कि rowdata_at_count
एक सूची है जिसके तत्व स्तंभ प्रकारों से मेल खाते हैं।
संपादित करें
हां, 100 पंक्तियों को जोड़ना, मेरा मानना है कि, एक पंक्ति के 100 संघटकों की तरह (जैसा कि प्रत्येक परिशिष्ट को पुन:आवंटित करना चाहिए और तालिका की प्रतिलिपि बनाना चाहिए, ठीक उसी तरह)। प्रीआलोकेटिंग एपेंड और कॉनकैट दोनों से बचा जाता है:टेबल का आकार नहीं बदलता है, कोई पुन:आवंटन और कॉपी करने की आवश्यकता नहीं है।