पायथन पंडों: CSV फ़ाइलों की केवल पहली n पंक्तियों को कैसे पढ़ें?


96

मेरे पास एक बहुत बड़ा डेटा सेट है और मैं इसमें सेट किए गए पूरे डेटा को पढ़ने का जोखिम नहीं उठा सकता हूं। इसलिए, मैं इसे प्रशिक्षित करने के लिए केवल एक हिस्सा पढ़ने के बारे में सोच रहा हूं, लेकिन मुझे नहीं पता कि यह कैसे करना है। किसी भी विचार की सराहना की जाएगी।

जवाबों:


172

यदि आप केवल पहली 999,999 (नॉन हैडर) पंक्तियों को पढ़ना चाहते हैं:

read_csv(..., nrows=999999)

यदि आप केवल पंक्तियों को पढ़ना चाहते हैं 1,000,000 ... 1,999,999

read_csv(..., skiprows=1000000, nrows=999999)

nrows : पढ़ने के लिए फ़ाइल की पंक्तियों की संख्या को int, default, कोई नहीं। बड़ी फ़ाइलों के टुकड़ों को पढ़ने के लिए उपयोगी *

स्किपरो : सूची-जैसे या पूर्णांक पंक्ति संख्या (0-अनुक्रमित) को छोड़ना या पंक्तियों की संख्या को फ़ाइल के प्रारंभ में छोड़ना (int)

और बड़ी फ़ाइलों के लिए, आप संभवतः चंक्साइज़ का उपयोग करना चाहते हैं:

chunksize : int, default पुनरावृति के लिए कोई नहीं TextFileReader ऑब्जेक्ट लौटाएं

pandas.io.parsers.read_csv प्रलेखन


यह ठीक है, वे थोड़ा छिपे हुए हैं। डॉक्टर इन उदाहरणों के साथ कर सकते थे। chunksizeदर्द का एक सा है, आप असमान आकार का हिस्सा से निपटने के लिए है। इसके अलावा अपने सरणियों / डेटाफ्रेमों को निर्धारित आकार के साथ प्रचारित करें जिन्हें आप जानते हैं कि आपको आवश्यकता होगी, जब भी आप इसे टाल सकते हैं तो गतिशील रूप से न करें।
एसएमसीआई

... और यह भी, यह इंटरफ़ेस की तरह नहीं है nstart=,nend=...। आपको अंकगणित करना होगाskiprows = nend - nrows
smci

1
मुझे लगता है कि यह सिर्फ SQL से लिया गया है LIMIT nstart, skiprows:: /
FooBar

... और ऑफ- header=n/list
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.