डेटा के साथ काम करना प्रोग्रामिंग का एक अनिवार्य हिस्सा है, और एक ऐसे व्यक्ति के रूप में जो अक्सर खुद को विभिन्न फ़ाइल स्वरूपों में घुटने टेकता हुआ पाता है, मैंने हमेशा सराहना की है कि कैसे पायथन पूरी प्रक्रिया को सरल बनाता है।
एक ऐसा फ़ाइल प्रारूप जो नियमित रूप से सामने आता है, विशेष रूप से डेटा विश्लेषण में, सीएसवी फ़ाइल है।
सीएसवी, या अल्पविराम से अलग किए गए मान, अपनी सादगी के कारण एक लोकप्रिय डेटा विनिमय प्रारूप है।
सौभाग्य से, पायथन सीएसवी नामक एक अंतर्निहित मॉड्यूल के साथ आता है, जो इन फ़ाइलों के साथ काम करना उल्लेखनीय रूप से कुशल बनाता है।
इस लेख में, मैं बताऊंगा कि सीएसवी मॉड्यूल पायथन में कैसे काम करता है, बुनियादी उपयोग से लेकर अधिक उन्नत तकनीकों तक जो डेटा संसाधित करते समय आपका बहुत सारा समय बचा सकता है।
सीएसवी मॉड्यूल में गोता लगाने से पहले, आइए एक बुनियादी समझ से शुरू करें कि सीएसवी फ़ाइल क्या है।
एक सीएसवी फ़ाइल अनिवार्य रूप से एक सादा पाठ फ़ाइल है जहां प्रत्येक पंक्ति डेटा की एक पंक्ति का प्रतिनिधित्व करती है, और प्रत्येक मान को अल्पविराम (या कभी-कभी टैब जैसे अन्य सीमांकक) द्वारा अलग किया जाता है।
यह कैसा दिख सकता है इसका एक त्वरित उदाहरण यहां दिया गया है:
Name,Age,Occupation Alice,30,Engineer Bob,25,Data Scientist Charlie,35,Teacher
आपको आश्चर्य हो सकता है कि आपको सीएसवी मॉड्यूल की आवश्यकता क्यों होगी जब सीएसवी फाइलें सिर्फ टेक्स्ट फाइलें हैं जिन्हें सैद्धांतिक रूप से पायथन की मानक फ़ाइल हैंडलिंग विधियों का उपयोग करके पढ़ा जा सकता है।
हालाँकि यह सच है, CSV फ़ाइलों में जटिलताएँ हो सकती हैं - जैसे एम्बेडेड अल्पविराम, कोशिकाओं के भीतर लाइन ब्रेक, और विभिन्न सीमांकक - जिन्हें मैन्युअल रूप से संभालना मुश्किल है।
सीएसवी मॉड्यूल इन सबका सार निकालता है, जिससे आप अपने डेटा पर ध्यान केंद्रित कर सकते हैं।
आइए कोड में जाएं।
CSV फ़ाइल पर आपके द्वारा किया जाने वाला सबसे आम ऑपरेशन इसकी सामग्री को पढ़ना है।
मॉड्यूल में csv.reader() फ़ंक्शन इसके लिए उपयोग में आसान उपकरण है।
यह कैसे करना है इसके बारे में चरण-दर-चरण मार्गदर्शिका यहां दी गई है।
बेसिक सीएसवी रीडिंग
import csv # Open a CSV file with open('example.csv', 'r') as file: reader = csv.reader(file) # Iterate over the rows for row in reader: print(row)
CSV फ़ाइल को पढ़ने का यह सबसे सरल तरीका है।
csv.reader() एक पुनरावर्तनीय रिटर्न देता है, जहां प्रत्येक पुनरावृत्ति आपको फ़ाइल की एक पंक्ति का प्रतिनिधित्व करने वाली एक सूची देती है।
हेडर को संभालना
अधिकांश CSV फ़ाइलें कॉलम नामों की तरह, पहली पंक्ति में हेडर के साथ आती हैं।
यदि आपको इन शीर्षलेखों की आवश्यकता नहीं है, तो आप पुनरावृत्ति करते समय पहली पंक्ति को छोड़ सकते हैं:
import csv with open('example.csv', 'r') as file: reader = csv.reader(file) # Skip header next(reader) for row in reader: print(row)
कभी-कभी, मैं उन फ़ाइलों के साथ काम कर रहा हूं जिनमें उपयोगी और अप्रासंगिक डेटा का मिश्रण होता है, और मुझे लगता है कि मैं केवल हेडर से अधिक के आधार पर पंक्तियों को छोड़ रहा हूं।
आप इसे लूप के भीतर आसानी से कर सकते हैं।
DictReader: CSV फ़ाइलें पढ़ने का एक अधिक सहज तरीका
यदि आपकी CSV फ़ाइल में हेडर हैं, तो csv.DictReader() एक और शानदार विकल्प है जो प्रत्येक पंक्ति को एक शब्दकोश के रूप में पढ़ता है, जिसमें कुंजियाँ कॉलम नाम हैं:
import csv with open('example.csv', 'r') as file: reader = csv.DictReader(file) for row in reader: print(row)
यह दृष्टिकोण आपके कोड को अधिक पठनीय और सहज बना सकता है, खासकर बड़े डेटासेट के साथ काम करते समय।
उदाहरण के लिए, पंक्ति['नाम'] तक पहुंचना पंक्ति[0] जैसी सूचकांक-आधारित पहुंच से निपटने की तुलना में अधिक स्पष्ट लगता है।
एक बार जब आप अपना डेटा पढ़ और संसाधित कर लेंगे, तो संभावना है कि आप इसे सहेजना या निर्यात करना चाहेंगे।
CSV.writer() फ़ंक्शन CSV फ़ाइलों पर लिखने के लिए आपका पसंदीदा उपकरण है।
बुनियादी सीएसवी लेखन
import csv # Data to be written data = [ ['Name', 'Age', 'Occupation'], ['Alice', 30, 'Engineer'], ['Bob', 25, 'Data Scientist'], ['Charlie', 35, 'Teacher'] ] # Open a file in write mode with open('output.csv', 'w', newline='') as file: writer = csv.writer(file) # Write data to the file writer.writerows(data)
writer.writerows() फ़ंक्शन सूचियों की एक सूची लेता है और उन्हें CSV फ़ाइल में लिखता है, जहां प्रत्येक आंतरिक सूची डेटा की एक पंक्ति का प्रतिनिधित्व करती है।
DictWriter: CSV फ़ाइलें लिखने का एक साफ़ तरीका
जैसे हमारे पास CSV फ़ाइलों को शब्दकोशों में पढ़ने के लिए DictReader है, वैसे ही हमारे पास CSV में शब्दकोश लिखने के लिए DictWriter है।
यह विधि विशेष रूप से तब उपयोगी हो सकती है जब आप अपने कॉलम नाम स्पष्ट रूप से निर्दिष्ट करना चाहते हैं।
import csv # Data as list of dictionaries data = [ {'Name': 'Alice', 'Age': 30, 'Occupation': 'Engineer'}, {'Name': 'Bob', 'Age': 25, 'Occupation': 'Data Scientist'}, {'Name': 'Charlie', 'Age': 35, 'Occupation': 'Teacher'} ] # Open file for writing with open('output.csv', 'w', newline='') as file: fieldnames = ['Name', 'Age', 'Occupation'] writer = csv.DictWriter(file, fieldnames=fieldnames) # Write the header writer.writeheader() # Write the data writer.writerows(data)
DictWriter का उपयोग करके, आपको अपने कोड को पढ़ने योग्य और संक्षिप्त रखते हुए CSV में शब्दकोश लिखने के लिए एक अच्छा, साफ इंटरफ़ेस मिलता है।
डिफ़ॉल्ट रूप से, सीएसवी मॉड्यूल मानों को अलग करने के लिए अल्पविराम का उपयोग करता है, लेकिन कभी-कभी आप उन फ़ाइलों के साथ काम कर रहे होंगे जो अन्य सीमांकक, जैसे टैब या अर्धविराम का उपयोग करते हैं।
सीएसवी मॉड्यूल सीमांकक तर्क निर्दिष्ट करके इन मामलों को संभालने का एक आसान तरीका प्रदान करता है।
import csv with open('example_tab.csv', 'r') as file: reader = csv.reader(file, delimiter='\t') for row in reader: print(row)
मुझे सीएसवी फ़ाइलें मिली हैं जो अल्पविराम के बजाय अर्धविराम का उपयोग करती हैं - आमतौर पर यूरोपीय स्रोतों से - और यह जानकर तसल्ली होती है कि पायथन का सीएसवी मॉड्यूल इसे आसानी से संभाल लेता है।
चाहे वह अल्पविराम हो, टैब हो, या कोई अन्य सीमांकक हो, सीएसवी मॉड्यूल ने आपको कवर कर लिया है।
यदि आपके डेटा में फ़ील्ड, उद्धरण, या यहां तक कि लाइन ब्रेक के भीतर अल्पविराम शामिल है तो क्या होगा?
सीएसवी मॉड्यूल उद्धरण तंत्र का उपयोग करके ऐसे मामलों को स्वचालित रूप से संभालता है।
आप उद्धरण पैरामीटर का उपयोग करके यह भी नियंत्रित कर सकते हैं कि उद्धरण कैसे काम करता है।
import csv data = [ ['Name', 'Occupation', 'Description'], ['Alice', 'Engineer', 'Works on, "cutting-edge" technology'], ['Bob', 'Data Scientist', 'Loves analyzing data.'] ] with open('complex.csv', 'w', newline='') as file: writer = csv.writer(file, quoting=csv.QUOTE_ALL) writer.writerows(data)
इस उदाहरण में, QUOTE_ALL सुनिश्चित करता है कि प्रत्येक फ़ील्ड उद्धरण चिह्नों में लिपटा हुआ है।
अन्य उद्धरण विकल्पों में csv.QUOTE_MINIMAL, csv.QUOTE_NONNUMERIC, और csv.QUOTE_NONE शामिल हैं, जो आपको इस बात पर पूरा नियंत्रण देते हैं कि आपका CSV डेटा कैसे स्वरूपित किया जाता है।
पिछले कुछ वर्षों में, मैं डेटा को स्थानांतरित करने के हल्के, कुशल तरीके के रूप में सीएसवी प्रारूप पर भरोसा करता आया हूं और पायथन का सीएसवी मॉड्यूल उस यात्रा में एक भरोसेमंद साथी रहा है।
चाहे आप सरल स्प्रेडशीट या जटिल, बहु-पंक्ति डेटा फ़ील्ड से निपट रहे हों, यह मॉड्यूल प्रक्रिया को सहज और सहज महसूस कराता है।
हालांकि सीएसवी के साथ काम करना पहली बार में एक साधारण काम जैसा लग सकता है, लेकिन यह डेटा हेरफेर में महारत हासिल करने का प्रवेश द्वार है।
मेरे अनुभव में, एक बार जब आप सीएसवी पर विजय प्राप्त कर लेते हैं, तो आप खुद को JSON या SQL डेटाबेस जैसे बड़े, अधिक जटिल प्रारूपों से निपटने में आत्मविश्वास से पाएंगे। आख़िरकार, हर चीज़ बुनियादी बातों से शुरू होती है।
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3