pandas 0.23 - 22. IO Tools (Text, CSV, HDF5, …)

IO उपकरण (पाठ, CSV, HDF5,…)




pandas

IO उपकरण (पाठ, CSV, HDF5,…)

पांडा I / O API शीर्ष स्तर के reader फ़ंक्शन का एक सेट है, pandas.read_csv() तरह एक्सेस किया जाता है, जो आमतौर पर एक पांडा ऑब्जेक्ट लौटाता है। संबंधित writer फ़ंक्शन ऑब्जेक्ट विधियाँ हैं जो DataFrame.to_csv() तरह एक्सेस की DataFrame.to_csv() । नीचे एक तालिका उपलब्ध readers और writers

प्रारूप प्रकार डेटा विवरण पाठक लेखक
टेक्स्ट CSV read_csv to_csv
टेक्स्ट JSON read_json to_json
टेक्स्ट HTML read_html to_html
टेक्स्ट स्थानीय क्लिपबोर्ड read_clipboard read_clipboard
बाइनरी एमएस एक्सेल read_excel to_excel
बाइनरी HDF5 प्रारूप read_hdf read_hdf
बाइनरी पंख प्रारूप read_feather read_feather
बाइनरी लकड़ी की छत का प्रारूप read_parquet read_parquet
बाइनरी Msgpack read_msgpack read_msgpack
बाइनरी Stata read_stata to_stata
बाइनरी SAS read_sas
बाइनरी पायथन अचार प्रारूप read_pickle read_pickle
एसक्यूएल SQL read_sql read_sql
एसक्यूएल Google बिग क्वेरी read_gbq read_gbq

इनमें से कुछ IO विधियों के लिए एक अनौपचारिक प्रदर्शन तुलना है।

ध्यान दें

उन उदाहरणों के लिए जो StringIO वर्ग का उपयोग करते हैं, सुनिश्चित करें कि आप इसे अपने पायथन संस्करण के अनुसार आयात करते हैं, अर्थात from StringIO import StringIO 2 के लिए from StringIO import StringIO from io import StringIO और पायथन 3 के लिए from io import StringIO

CSV और पाठ फ़ाइलें

पाठ फ़ाइलों (उर्फ फ्लैट फ़ाइलों) को पढ़ने के लिए दो pandas.read_csv() और read_table() । वे दोनों एक ही पार्सिंग कोड का उपयोग बुद्धिमानी से सारणीबद्ध डेटा को DataFrame ऑब्जेक्ट में बदलने के लिए करते हैं। कुछ उन्नत रणनीतियों के लिए cookbook की cookbook देखें।

पार्सिंग विकल्प

निम्नलिखित सामान्य तर्कों को read_table() pandas.read_csv() और read_table() स्वीकार करते हैं:

बुनियादी

filepath_or_buffer : various
किसी फ़ाइल का पथ ( str , pathlib.Path , या py._path.local.LocalPath ), URL (http, ftp और S3 स्थानों सहित), या किसी भी ऑब्जेक्ट के साथ read() विधि (जैसे कि एक खुला) फ़ाइल या StringIO )।
sep : str, defaults to ',' for read_csv(), \t for read_table()
उपयोग करने के लिए परिसीमन। अगर None , तो सी इंजन स्वचालित रूप से विभाजक का पता नहीं लगा सकता है, लेकिन पायथन पार्सिंग इंजन कर सकता है, जिसका अर्थ है कि बाद का उपयोग किया जाएगा और स्वचालित रूप से पायथन के csv.Sniffer स्निफर उपकरण, csv.Sniffer द्वारा विभाजक का पता csv.Sniffer । इसके अतिरिक्त, 1 वर्ण से अधिक के विभाजक और '\s+' से भिन्न को नियमित अभिव्यक्ति के रूप में व्याख्या किया जाएगा और पायथन पार्सिंग इंजन के उपयोग को भी बाध्य करेगा। ध्यान दें कि regex delimiters उद्धृत डेटा की अनदेखी करने के लिए प्रवण हैं। Regex उदाहरण: '\\r\\t'
delimiter : str, default None
सेप के लिए वैकल्पिक तर्क नाम।
delim_whitespace : boolean, default False

निर्दिष्ट करता है कि व्हाट्सएप या नहीं (उदाहरण के लिए ' ' या '\t' ) का उपयोग सीमांकक के रूप में किया जाएगा। sep='\s+' सेट करने के बराबर। यदि यह विकल्प True सेट है, तो delimiter पैरामीटर के लिए कुछ भी पारित नहीं होना चाहिए।

संस्करण 0.18.1 में नया: पायथन पार्सर के लिए समर्थन।

कॉलम और इंडेक्स स्थान और नाम

header : int or list of ints, default 'infer'

स्तंभ नामों और डेटा की शुरुआत के रूप में उपयोग करने के लिए पंक्ति संख्या। डिफ़ॉल्ट व्यवहार स्तंभ नामों को अवरूद्ध करने के लिए है: यदि कोई नाम पारित नहीं किया जाता है तो व्यवहार header=0 समान है और स्तंभ नाम फ़ाइल की पहली पंक्ति से अनुमानित हैं, यदि स्तंभ नाम स्पष्ट रूप से दिए गए हैं तो व्यवहार header=None समान है header=None । मौजूदा नामों को बदलने में सक्षम होने के लिए स्पष्ट रूप से header=0 पास करें।

शीर्षलेख उन स्तंभों की एक सूची हो सकती है जो स्तंभों पर एक बहु-सूचकांक के लिए पंक्ति स्थान निर्दिष्ट करते हैं जैसे [0,1,3] । निर्दिष्ट की गई पंक्तियों को रोकना छोड़ दिया जाएगा (जैसे इस उदाहरण में 2 छोड़ दिया गया है)। ध्यान दें कि यह पैरामीटर टिप्पणी की गई लाइनों और खाली लाइनों को अनदेखा करता है यदि skip_blank_lines=True , तो हेडर = 0 फ़ाइल की पहली पंक्ति के बजाय डेटा की पहली पंक्ति को दर्शाता है।

names : array-like, default None
उपयोग करने के लिए कॉलम नामों की सूची। यदि फ़ाइल में कोई हेडर पंक्ति नहीं है, तो आपको स्पष्ट रूप से header=None पास करना चाहिए। इस सूची में डुप्लिकेट को जारी करने के लिए एक UserWarning का कारण होगा।
index_col : int or sequence or False, default None
DataFrame की पंक्ति लेबल के रूप में उपयोग करने के लिए कॉलम। यदि कोई अनुक्रम दिया जाता है, तो एक मल्टीइन्डेक्स का उपयोग किया जाता है। यदि आपके पास प्रत्येक पंक्ति के अंत में सीमांकक के साथ एक विकृत फ़ाइल है, तो आप अनुक्रमणिका (पंक्ति नाम) के रूप में पहले स्तंभ का उपयोग नहीं करने के लिए इंडेक्स के लिए index_col=False पर विचार कर सकते हैं।
usecols : list-like or callable, default None

स्तंभों का सबसेट वापस करें। यदि सूची की तरह, सभी तत्वों को या तो स्थितीय होना चाहिए (यानी दस्तावेज़ स्तंभों में पूर्णांक सूचक) या तार जो कि नाम से उपयोगकर्ता द्वारा प्रदान किए गए स्तंभ नामों के अनुरूप हैं या दस्तावेज़ हेडर पंक्ति (ओं) से निकले हैं। उदाहरण के लिए, एक मान्य सूची-जैसे usecols पैरामीटर [0, 1, 2] या ['foo', 'bar', 'baz']

तत्व आदेश की उपेक्षा की जाती है, इसलिए usecols=[0, 1] [1, 0] । तत्व आदेश संरक्षित data साथ डेटाफ्रेम को तुरंत करने के लिए pd.read_csv(data, usecols=['foo', 'bar'])[['foo', 'bar']] में कॉलम ['foo', 'bar'] आदेश या pd.read_csv(data, usecols=['foo', 'bar'])[['bar', 'foo']] लिए ['bar', 'foo'] आदेश।

यदि कॉल करने योग्य है, तो कॉल करने योग्य फ़ंक्शन का मूल्यांकन स्तंभ नामों के खिलाफ किया जाएगा, उन नामों को लौटाया जाएगा जहां कॉल करने योग्य फ़ंक्शन True का मूल्यांकन करता है:

In [1]: data = 'col1,col2,col3\na,b,1\na,b,2\nc,d,3'

In [2]: pd.read_csv(StringIO(data))
Out[2]: 
  col1 col2  col3
0    a    b     1
1    a    b     2
2    c    d     3

In [3]: pd.read_csv(StringIO(data), usecols=lambda x: x.upper() in ['COL1', 'COL3'])