কম্পিউটার টিউটোরিয়াল

পাইথন প্রোগ্রামিং-এ CSV ফাইল নিয়ে কাজ করা

CSV ফাইল বা কমা-সেপারেটেড ভ্যালু ফাইল ডেটা সংরক্ষণ ও প্ল্যাটফর্ম জুড়ে শেয়ার করার জন্য সবচেয়ে ব্যাপকভাবে ব্যবহৃত ফ্ল্যাট ফাইল। কলামগুলো কমা দিয়ে সেপারেট থাকে এবং অপশনাল হেডার রোও থাকে যেটি প্রতিটি কলামের নাম নির্দেশ করে। পাইথন অনেক মডিউল ব্যবহার করে CSV ফাইল পড়তে পারে। এই আর্টিকেলে আমরা দেখব কিভাবে পাইথনের CSV লাইব্রেরি ব্যবহার করে CSV ফাইল পড়া ও লেখা যায়। আমরা পান্ডাস লাইব্রেরিও শুধু CSV পড়তে দেখব।

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("Given dataset values : \n", datainput)
# size of the dataset
print("\nThe size of the dataset is :\n", datainput.shape)
# printing few rows from the dataset
print("\n printing few rows from the dataset :\n", datainput[0:6])

আউটপুট

উপরোক্ত কোডটি রান করলে নিচের ফলাফল পাওয়া যায়:

Given dataset values :
   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]
The size of the dataset is : (150, 5)
printing few rows from the dataset :
   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 ফাইল তৈরি করতে আমরা পাইথন লিস্ট ব্যবহার করি। আমরা একটি ডেটাসেট ডিক্লেয়ার করি যেখানে প্রতিটি রো একটি লিস্ট এবং সব রো একটি বড় সিঙ্গেল লিস্টে সাবলিস্ট হিসেবে থাকে। আমরা আরেকটি ডেটাসেট তৈরি করি যা শুধু হেডার রোকে রিপ্রেজেন্ট করে। তারপর 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)
# here you have to write path, where result file will be stored
print(df)

আউটপুট

উপরোক্ত কোডটি রান করলে নিচের ফলাফল পাওয়া যায়:

  Month 1958 1959 1960
0   JAN  345  377  498
1   FEB  435  135  354
2   MAR  545  985  765

  1. পাইথনে পান্ডাস দিয়ে হেডার ছাড়া CSV ফাইল পড়া

  2. পাইথনে ইমেজ প্রসেসিং (Working with Images in Python)

  3. পাইথনে PDF ফাইল হ্যান্ডলিং: PyPDF2 লাইব্রেরির ব্যবহার

  4. পাইথনে মেটাক্লাস ব্যবহার করে মেটা প্রোগ্রামিং