CSV फाइल या कॉमा सेपरेटेड वैल्यूज फाइल प्लेटफॉर्म पर डेटा स्टोर और शेयर करने के लिए सबसे व्यापक रूप से उपयोग की जाने वाली फ्लैट फाइलों में से एक है। कॉलम कॉमा से अलग होते हैं और एक वैकल्पिक हेडर रो भी होती है जो प्रत्येक कॉलम का नाम दर्शाती है। Python कई मॉड्यूल का उपयोग करके CSV फाइलें पढ़ सकता है। इस लेख में हम देखेंगे कि Python में CSV लाइब्रेरी का उपयोग करके CSV फाइल को कैसे पढ़ा और लिखा जा सकता है। हम CSV फाइल पढ़ने के लिए pandas लाइब्रेरी भी देख सकते हैं।
csv मॉड्यूल का उपयोग करके CSV फाइल पढ़ना
हम CSV फाइल (https://www.guru99.com/python-csv.html) से प्राप्त कर सकते हैं
उदाहरण
import csv
with open('C:\\iris.csv', 'rt') as file:
csv_rows = csv.reader(file)
for row in csv_rows:
print(row)
आउटपुट
उपरोक्त कोड चलाने पर हमें निम्न परिणाम मिलता है -
['sepal.length', 'sepal.width', 'petal.length', 'petal.width', 'variety'] ['5.1', '3.5', '1.4', '.2', 'Setosa'] ['4.9', '3', '1.4', '.2', 'Setosa'] ['4.7', '3.2', '1.3', '.2', 'Setosa'] ['4.6', '3.1', '1.5', '.2', 'Setosa'] ['5', '3.6', '1.4', '.2', 'Setosa'] ['5.4', '3.9', '1.7', '.4', 'Setosa'] ['4.6', '3.4', '1.4', '.3', 'Setosa'] ......... .........
Pandas का उपयोग करके CSV फाइल पढ़ना
Pandas लाइब्रेरी का उपयोग CSV फाइलें पढ़ने के लिए भी किया जा सकता है। इसमें CSV पढ़ने की विधि होती है जिसे सीधे पथ और फ़ाइल नाम पास करके लागू किया जा सकता है। एक बार फाइल पढ़ लेने के बाद यह एक डेटा सेट बन जाती है और फिर हम डेटा सेट के विभिन्न भागों को आवश्यकतानुसार प्रिंट कर सकते हैं।
उदाहरण
import pandas as pd
datainput = pd.read_csv('C:\\iris.csv')
print("दिया गया डेटासेट मान : \n", datainput)
# डेटासेट का आकार
print("\nडेटासेट का आकार है :\n", datainput.shape)
# डेटासेट से कुछ पंक्तियाँ प्रिंट करना
print("\n डेटासेट से कुछ पंक्तियाँ प्रिंट करना :\n", datainput[0:6])
आउटपुट
उपरोक्त कोड चलाने पर हमें निम्न परिणाम मिलता है -
दिया गया डेटासेट मान : sepal.length sepal.width petal.length petal.width variety 0 5.1 3.5 1.4 0.2 Setosa 1 4.9 3.0 1.4 0.2 Setosa 2 4.7 3.2 1.3 0.2 Setosa 3 4.6 3.1 1.5 0.2 Setosa 4 5.0 3.6 1.4 0.2 Setosa .. ... ... ... ... ... 145 6.7 3.0 5.2 2.3 Virginica 146 6.3 2.5 5.0 1.9 Virginica 147 6.5 3.0 5.2 2.0 Virginica 148 6.2 3.4 5.4 2.3 Virginica 149 5.9 3.0 5.1 1.8 Virginica [150 rows x 5 columns] डेटासेट का आकार है : (150, 5) डेटासेट से कुछ पंक्तियाँ प्रिंट करना : sepal.length sepal.width petal.length petal.width variety 0 5.1 3.5 1.4 0.2 Setosa 1 4.9 3.0 1.4 0.2 Setosa 2 4.7 3.2 1.3 0.2 Setosa 3 4.6 3.1 1.5 0.2 Setosa 4 5.0 3.6 1.4 0.2 Setosa 5 5.4 3.9 1.7 0.4 Setosa
csv मॉड्यूल का उपयोग करके CSV फाइल लिखना
CSV फाइल बनाने के लिए हम Python सूचियों का उपयोग करते हैं। हम एक डेटा सेट घोषित करते हैं जिसमें प्रत्येक पंक्ति एक सूची के रूप में होती है और सभी पंक्तियाँ एक बड़ी सूची में उप-सूची होती हैं। हम एक और डेटा सेट भी बनाते हैं जो केवल हेडर पंक्ति को दर्शाता है। फिर हम अंततः फाइल को स्थानीय सिस्टम में लिखने के लिए writerow() और csv.writer जैसी विभिन्न विधियों का उपयोग करते हैं।
उदाहरण
import csv
data = ["Month", "1958", "1959", "1960"]
x = [
["JAN", 340, 360, 417],
["FEB", 318, 342, 391],
["MAR", 362, 406, 419],
["APR", 348, 396, 461],
["MAY", 363, 420, 472],
["JUN", 435, 472, 535],
["JUL", 491, 548, 622],
["AUG", 505, 559, 606],
["SEP", 404, 463, 508],
["OCT", 359, 407, 461],
["NOV", 310, 362, 390],
["DEC", 337, 405, 432],
]
y = "C:\\years.csv"
with open(y, 'w') as work:
z = csv.writer(work)
z.writerow(data)
z.writerows(x)
आउटपुट
उपरोक्त कोड चलाने पर हमें निम्न परिणाम मिलता है -
Month,1958,1959,1960 JAN,340,360,417 FEB,318,342,391 MAR,362,406,419 APR,348,396,461 MAY,363,420,472 JUN,435,472,535 JUL,491,548,622 AUG,505,559,606 SEP,404,463,508 OCT,359,407,461 NOV,310,362,390 DEC,337,405,432
pandas का उपयोग करके CSV फाइल लिखना
pandas का उपयोग करके हम एक डेटा फ्रेम बनाते हैं जिसमें देश पंक्तियों के साथ-साथ पंक्तियों के हेडर भी होते हैं। फिर हम to_csv विधि का उपयोग करते हैं जो फ़ाइल नाम और पथ को पैरामीटर के रूप में लेती है और डेटा को CSV फाइल में लिखती है।
उदाहरण
from pandas import DataFrame
C = {'Month': ['JAN', 'FEB', 'MAR'],
'1958': ['345', '435', '545'],
'1959': ['377', '135', '985'],
'1960': ['498', '354', '765'],
}
df = DataFrame(C, columns=["Month", "1958", "1959", "1960"])
export_csv = df.to_csv(r'C:\years_p.csv', index=None, header=True)
# यहां आपको वह पथ लिखना होगा जहां परिणाम फाइल स्टोर होगी
print(df)
आउटपुट
उपरोक्त कोड चलाने पर हमें निम्न परिणाम मिलता है -
Month 1958 1959 1960 0 JAN 345 377 498 1 FEB 435 135 354 2 MAR 545 985 765