পান্ডাস ইনস্টল করা ও প্রথম টেবিল
পান্ডাস পাইথনের সাথে আসে না। ভার্চুয়াল এনভায়রনমেন্ট বানিয়ে pip দিয়ে ইনস্টল করা, যাচাই করা, আর নিজের হাতে প্রথম DataFrame বানানো।
কীভাবে শিখতে চান?
যে সমস্যাটা আমরা সমাধান করছি
একটি দোকানের তিন মাসের বিক্রির হিসাব একটি CSV ফাইলে আছে — বারো হাজার সারি। প্রশ্নটি সহজ: কোন পণ্যটি সবচেয়ে বেশি বিক্রি হয়েছে?
পাইথন দিয়ে এটি করা যায়। ফাইলটি খুলুন, প্রতিটি লাইন পড়ুন, কমা দিয়ে ভাগ করুন, সংখ্যায় রূপান্তর করুন, একটি করে যোগ করুন। চল্লিশ লাইনের কোড, আর তার প্রতিটি ধাপে ভুল করার সুযোগ।
পান্ডাস দিয়ে এটি দুই লাইন। কারণ পান্ডাস পাইথনকে একটি নতুন জিনিস দেয়, যা এতদিন ছিল না: টেবিল। সারি আর কলামওয়ালা একটি পুরো টেবিলকে সে একটিমাত্র মান হিসেবে ধরে রাখে, আর তার উপর যোগ, ছাঁকা, সাজানো — সবই একটি করে কাজ।
তবে একটি কথা আগেই পরিষ্কার করে নেওয়া দরকার। print, len, input — এগুলো পাইথনের সাথেই আসে। পান্ডাস আসে না। সেটি আলাদাভাবে ইনস্টল করতে হয়, আর ঠিক কোথায় ইনস্টল হচ্ছে সেটা না বুঝলে প্রথম দিনেই এমন একটি ত্রুটিতে আটকে যেতে হয় যার কারণ খুঁজে পাওয়া কঠিন।
এই অধ্যায় শেষে আপনি পারবেন
- পাইথনের নিজস্ব লাইব্রেরি আর বাইরের প্যাকেজের পার্থক্য বলতে
- প্রজেক্টের জন্য একটি ভার্চুয়াল এনভায়রনমেন্ট বানাতে ও চালু করতে
pipদিয়ে পান্ডাস ইনস্টল করে সংস্করণ যাচাই করতে- নিজের হাতে প্রথম
DataFrameবানিয়ে ছাপাতে ModuleNotFoundErrorপড়ে বুঝতে ঠিক কোথায় গোলমাল
আগে যা জানা লাগবে: পাইথন কোর্সের টার্মিনাল, ফোল্ডার আর প্রথম প্রজেক্ট আর পাইথনে ভেরিয়েবল ও ধরন।
পান্ডাস পাইথনের অংশ নয়
পাইথনের সাথে যা আসে তাকে বলে স্ট্যান্ডার্ড লাইব্রেরি — print, len, math, random সব সেখানেই। পান্ডাস সেখানে নেই। এটি একটি বাইরের প্যাকেজ, যা অন্য মানুষেরা লিখেছেন এবং PyPI নামের একটি ভাণ্ডারে রেখেছেন।
সেখান থেকে নামানোর হাতিয়ার হলো pip, যা পাইথনের সাথেই ইনস্টল হয়ে আসে।
এখানেই প্রথম প্রশ্নটি আসে, আর এটি এড়িয়ে গেলে পরে ভুগতে হয়: ইনস্টল হবে কোথায়?
কেন একটি ভার্চুয়াল এনভায়রনমেন্ট
pip install pandas লিখে দিলে পান্ডাস আপনার পুরো কম্পিউটারের পাইথনে বসে যায়। একটি প্রজেক্টে সেটা চলে। কিন্তু ছয় মাস পর যখন দ্বিতীয় প্রজেক্টের জন্য পান্ডাসের অন্য একটি সংস্করণ দরকার হবে, তখন দুটি প্রজেক্ট একই জায়গার জন্য লড়াই করবে — আর একটিকে ঠিক করতে গেলে অন্যটি ভাঙবে।
সমাধান হলো প্রতিটি প্রজেক্টের জন্য আলাদা একটি ঘর: ভার্চুয়াল এনভায়রনমেন্ট। এটি আসলে প্রজেক্ট ফোল্ডারের ভেতরে একটি সাধারণ ফোল্ডার, যেখানে ওই প্রজেক্টের প্যাকেজগুলো থাকে। প্রজেক্ট মুছে দিলে প্যাকেজগুলোও যায়, আর কম্পিউটারের মূল পাইথন পরিষ্কার থেকে যায়।
টার্মিনালে, প্রজেক্ট ফোল্ডারে দাঁড়িয়ে:
cd D:\python-lab
mkdir pandas-lab
cd pandas-lab
python -m venv .venvএখন সেটিকে চালু করতে হবে:
.venv\Scripts\activateচালু হলে প্রম্পটের শুরুতে ঘরটির নাম দেখা যাবে:
(.venv) PS D:\python-lab\pandas-lab>ওই(.venv)অংশটিই সবকিছু। সেটি দেখা না গেলে আপনি এনভায়রনমেন্টের বাইরে, আর তখনpip installপ্যাকেজটি অন্য কোথাও বসাবে। প্রতিবার নতুন টার্মিনাল খুললে আবারactivateকরতে হয় — এটি একবার সেট করে ভুলে যাওয়ার জিনিস নয়।
PowerShell যদি অভিযোগ করে যে স্ক্রিপ্ট চালানোর অনুমতি নেই, একবার এটি চালান:
Set-ExecutionPolicy -Scope CurrentUser RemoteSignedবেরোতে চাইলে deactivate।
ইনস্টল আর যাচাই
pip install pandasকয়েক সেকেন্ড পর শেষে Successfully installed ... দেখাবে। খেয়াল করবেন পান্ডাসের সাথে NumPy-ও নেমে এসেছে — পান্ডাস ভেতরে NumPy ব্যবহার করে, আর pip নিজেই সেই নির্ভরতাগুলো সামলায়।
এবার যাচাই। check.py নামে একটি ফাইল বানান:
import pandas as pd
print(pd.__version__)2.2.3সংখ্যাটি আপনার ক্ষেত্রে আলাদা হতে পারে, সমস্যা নেই। যা জরুরি তা হলো একটি সংস্করণ নম্বর ছাপা হওয়া — মানে পাইথন পান্ডাসকে খুঁজে পেয়েছে।
import pandas as pd লাইনটি নিয়ে দুটি কথা। import pandas পান্ডাসকে নিয়ে আসে; as pd তাকে একটি ছোট নাম দেয়। pd নামটি বাধ্যতামূলক নয়, কিন্তু পৃথিবীর প্রায় সব পান্ডাস কোডে এটাই ব্যবহৃত হয় — তাই অন্য কিছু লিখলে আপনার কোড পড়তে অন্যদের বাড়তি পরিশ্রম হবে। রীতিটি মেনে নেওয়াই ভালো।
একটা সম্পূর্ণ উদাহরণ
first_frame.py:
import pandas as pd
# A DataFrame from a dictionary: each key is a column name,
# each list is that column's values, top to bottom.
sales = pd.DataFrame({
"product": ["pen", "notebook", "bag"],
"quantity": [12, 5, 2],
"price": [15.0, 60.0, 850.0],
})
print(sales)product quantity price
0 pen 12 15.0
1 notebook 5 60.0
2 bag 2 850.0এই ছাপা টেবিলটির দিকে একটু মন দিয়ে তাকান, কারণ এর প্রতিটি অংশ পরের অধ্যায়গুলোতে কাজে লাগবে।
উপরের সারিতে কলামের নাম — product, quantity, price। বাঁ পাশে 0, 1, 2 — এগুলো কোনো কলাম নয়, এগুলো ইনডেক্স, অর্থাৎ সারিগুলোর নাম। আপনি ডিকশনারিতে এটি লেখেননি; পান্ডাস নিজে থেকে শূন্য থেকে গুনে বসিয়েছে।
আর লক্ষ করুন price কলামের 15.0 — আপনি 15.0 লিখেছিলেন, তাই পুরো কলামটি দশমিক হিসেবে ছাপা হচ্ছে, যদিও 850.0-ও গোটা সংখ্যা হতে পারত। একটি কলামের সব মান একই ধরনের — এটি পান্ডাসের একটি মূল নিয়ম, আর পরের অধ্যায়ে সেটিই মূল বিষয়।
টেবিলটি হাতে থাকলে প্রশ্ন করা সহজ:
import pandas as pd
sales = pd.DataFrame({
"product": ["pen", "notebook", "bag"],
"quantity": [12, 5, 2],
"price": [15.0, 60.0, 850.0],
})
print(sales.shape)
print(sales["quantity"].sum())(3, 3)
19shape বলে টেবিলটি কত বড় — তিন সারি, তিন কলাম, এই ক্রমেই। আর sales["quantity"].sum() একটি কলামের সব মান যোগ করে। বারো হাজার সারিতেও লাইনটি ঠিক এটাই থাকত, আর সেটাই পান্ডাস শেখার কারণ।
কিছু ভাঙা অবস্থা ও তার সমাধান
ModuleNotFoundError: No module named 'pandas' পাইথন পান্ডাস খুঁজে পায়নি। প্রায় সবসময় এর মানে ইনস্টল যেখানে হয়েছে আর প্রোগ্রাম চলছে যেখান থেকে, দুটি এক জায়গা নয়। প্রম্পটে (.venv) আছে কি না দেখুন; না থাকলে activate করে আবার চালান। এনভায়রনমেন্ট চালু থাকা অবস্থায় pip list চালিয়ে দেখুন তালিকায় পান্ডাস আছে কি না।
'pip' is not recognized as an internal or external command pip PATH-এ নেই। python -m pip install pandas লিখুন — এটি চলমান পাইথনের মাধ্যমে pip ডাকে, তাই PATH না থাকলেও কাজ করে, এবং কোন পাইথনে ইনস্টল হচ্ছে তা নিয়ে কোনো সন্দেহও থাকে না।
.venv\Scripts\activate : File cannot be loaded because running scripts is disabled PowerShell-এর নিরাপত্তা নীতি। একবার Set-ExecutionPolicy -Scope CurrentUser RemoteSigned চালিয়ে নিন, তারপর নতুন টার্মিনালে আবার চেষ্টা করুন।
সব ঠিক, তবু এডিটরে লাল দাগ এডিটর সম্ভবত অন্য একটি পাইথনের দিকে তাকিয়ে আছে। VS Code-এ Ctrl + Shift + P → Python: Select Interpreter → প্রজেক্টের .venv-এরটি বেছে নিন। টার্মিনালে প্রোগ্রাম চললে কোড ঠিকই আছে — লাল দাগটি এডিটরের ভুল ধারণা।
DataFrame লিখলে NameError pd.DataFrame লিখতে হবে, শুধু DataFrame নয়। import pandas as pd পুরো লাইব্রেরিটিকে pd নামে আনে; তার ভেতরের জিনিসগুলো তাই pd. দিয়েই ডাকতে হয়।
ধাপ ৪ / ৬ — অনুমান
যাচাই করুন
shape কী ছাপবে, আর সংখ্যা দুটির ক্রম কী?
import pandas as pd
sales = pd.DataFrame({
"product": ["pen", "notebook", "bag"],
"quantity": [12, 5, 2],
"price": [15.0, 60.0, 850.0],
})
print(sales.shape)- A(3, 4)
- B(3, 3)
- C3 rows, 3 columns
- D(3,)
প্রম্পটের শুরুতে (.venv) দেখা যাওয়ার মানে কী?
- Aপাইথন একটি বিশেষ নিরাপদ মোডে চলছে
- Bআপনি `.venv` নামের ফোল্ডারটির ভেতরে দাঁড়িয়ে আছেন
- Cভার্চুয়াল এনভায়রনমেন্টটি এই টার্মিনালে চালু — `pip install` এখন এই প্রজেক্টের ঘরে ইনস্টল করবে
- Dপান্ডাস ইনস্টল হয়ে গেছে
pip install pandas সফল হয়েছিল, কিন্তু পরদিন নতুন টার্মিনাল খুলে ফাইলটি চালাতে গিয়ে ModuleNotFoundError: No module named 'pandas' আসছে। সবচেয়ে সম্ভাব্য কারণ কী?
- Aইনস্টলটি আসলে ব্যর্থ হয়েছিল
- Bকম্পিউটার বন্ধ করলে ইনস্টল করা প্যাকেজ মুছে যায়
- Cফাইলটিতে `import pandas as pd`-এর বদলে `import pandas` লেখা হয়েছে
- Dনতুন টার্মিনালে এনভায়রনমেন্টটি চালু করা হয়নি, তাই অন্য একটি পাইথন চলছে — যেখানে পান্ডাস নেই
উত্তর দিতে অ্যাকাউন্ট লাগবে
উত্তর মিলিয়ে দেখতে সাইন ইন করুন
প্রশ্নগুলো উপরে আছে, আর মাথায় মাথায় উত্তর ভেবে নেওয়াই আসল কাজ। সঠিক উত্তর, ব্যাখ্যা আর তিন ধাপের ইঙ্গিত দেখতে সাইন ইন করুন।
নিজে করুন
একটি নতুন ফোল্ডারে নিজের ভার্চুয়াল এনভায়রনমেন্ট বানিয়ে পান্ডাস ইনস্টল করুন, তারপর stock.py নামে একটি ফাইল লিখুন যেখানে থাকবে:
- অন্তত চারটি পণ্যের একটি
DataFrame, তিনটি কলামসহ — একটি লেখা, একটি পূর্ণসংখ্যা, একটি দশমিক - পুরো টেবিলটি ছাপানো
shapeছাপিয়ে সারি ও কলামের সংখ্যা দেখানো- সংখ্যার কলাম দুটির যোগফল ছাপানো
তারপর ইচ্ছে করে একবার ভাঙুন: টার্মিনালে deactivate লিখে এনভায়রনমেন্ট বন্ধ করে ফাইলটি আবার চালান। কোন ত্রুটিটি আসে, আর সেটি ঠিক কী বলছে?
শেষ ধাপটি এড়িয়ে যাবেন না। ModuleNotFoundError আপনি বহুবার দেখবেন, আর আজ নিজে ডেকে আনলে পরের বার এক সেকেন্ডেই কারণটা বুঝে যাবেন।
ধাপ ৬ / ৬
কঠিন করা — অধ্যায়ের কুইজ
সহজ থেকে কঠিন — দশটি প্রশ্ন, শেষেরগুলো ইচ্ছে করেই কঠিন।
সাইন ইন করে কুইজ দিন