पांडा डेटाफ्रेम के लिए पहली कुछ पंक्तियों को पढ़ने का तरीका


100

क्या समय के आगे लाइनों की लंबाई को जाने बिना किसी फ़ाइल की read_csvकेवल पहली nपंक्तियों को पढ़ने के लिए उपयोग करने का एक अंतर्निहित तरीका है ? मेरे पास एक बड़ी फ़ाइल है जिसे पढ़ने में लंबा समय लगता है, और कभी-कभी केवल इसका उपयोग करने के लिए पहली, कहते हैं, 20 पंक्तियों का उपयोग करना चाहते हैं (और पूरी चीज़ को लोड नहीं करना चाहते हैं और इसका सिर लेना पसंद करते हैं)।

अगर मुझे पता था कि कुल पंक्तियाँ हैं, तो मैं कुछ कर सकता हूँ footer_lines = total_lines - nऔर skipfooterखोजशब्द arg को पास कर सकता हूँ । मेरा वर्तमान समाधान है कि मैं पहले से nही पंथ और स्ट्रिंग के साथ पहली पंक्तियों को पंडों तक ले जाऊं:

import pandas as pd
from StringIO import StringIO

n = 20
with open('big_file.csv', 'r') as f:
    head = ''.join(f.readlines(n))

df = pd.read_csv(StringIO(head))

यह उतना बुरा नहीं है, लेकिन क्या यह एक और अधिक संक्षिप्त, 'पैंडेसिक' (?) तरीका है इसे कीवर्ड या कुछ और करने के लिए?


1
यह देखने के लिए कि अंतिम N लाइनों को कैसे लोड किया जाए, इस SO पोस्ट को
zelusp

7
क्या आपका मतलब "पैंडिस्टिक" था? :)
1 ''

जवाबों:


182

मुझे लगता है कि आप nrowsपैरामीटर का उपयोग कर सकते हैं । से डॉक्स :

nrows : int, default None

    Number of rows of file to read. Useful for reading pieces of large files

जो काम करने लगता है। मानक बड़ी परीक्षण फ़ाइलों (988504479 बाइट्स, 5344499 लाइनों) में से एक का उपयोग करना:

In [1]: import pandas as pd

In [2]: time z = pd.read_csv("P00000001-ALL.csv", nrows=20)
CPU times: user 0.00 s, sys: 0.00 s, total: 0.00 s
Wall time: 0.00 s

In [3]: len(z)
Out[3]: 20

In [4]: time z = pd.read_csv("P00000001-ALL.csv")
CPU times: user 27.63 s, sys: 1.92 s, total: 29.55 s
Wall time: 30.23 s

बहुत बढ़िया, उस पैरामीटर को याद किया जाना चाहिए। धन्यवाद।
दाढ़ी

3
skiprows=Noneयाद करने के लिए एक उपयोगी पैरामीटर भी है
नितिन

अंतिम n पंक्तियों को लोड करने का सबसे अच्छा तरीका क्या है? मूल रूप से पूंछ () क्या करती है, लेकिन मुझे सीएसवी को लोड करते समय इसका उपयोग करने की आवश्यकता है। अग्रिम में धन्यवाद!
डेनियल पेट्रोव
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.