अध्याय 01

पांडास इंस्टॉल करना और आपकी पहली टेबल

पांडास पायथन के साथ नहीं आता। वर्चुअल एनवायरनमेंट बनाना, pip से इंस्टॉल करना, वर्ज़न जांचना, और अपने हाथों से पहला DataFrame बनाना।

25 मिनटPython 3.12
  1. 1समस्या
  2. 2समझें
  3. 3उदाहरण
  4. 4अनुमान
  5. 5स्वयं करें
  6. 6चुनौती

वह समस्या जिसे हम हल कर रहे हैं

एक दुकान की तीन महीने की बिक्री का डेटा एक CSV फ़ाइल में है — बारह हज़ार पंक्तियाँ (rows)। सवाल बहुत सीधा है: किस उत्पाद की बिक्री सबसे ज़्यादा हुई?

आप इसे उस पायथन ज्ञान से भी हल कर सकते हैं जो आपके पास पहले से है। फ़ाइल खोलें, हर पंक्ति पढ़ें, कॉमा के आधार पर विभाजित करें, संख्याओं में बदलें, और एक-एक करके उन्हें जोड़ें। चालीस लाइनों का कोड, और हर चरण में कोई न कोई ग़लती होने की संभावना।

पांडास (pandas) में यह काम केवल दो लाइनों का है। क्योंकि पांडास पायथन को वह चीज़ देता है जो पहले उसके पास नहीं थी: एक टेबल। पंक्तियों और स्तंभों (columns) का एक पूरा ग्रिड एक ही वैल्यू के रूप में सुरक्षित रहता है, और इसमें जोड़ना, फ़िल्टर करना और सॉर्ट करना — प्रत्येक केवल एक ही ऑपरेशन का काम है।

लेकिन पहले एक बात स्पष्ट कर लेना ज़रूरी है। print, len और input पायथन के साथ ही आते हैं। पांडास इसके साथ नहीं आता। इसे अलग से इंस्टॉल करना पड़ता है, और यह ठीक से न समझ पाना कि यह कहाँ इंस्टॉल होता है, पहले ही दिन लोगों को एक ऐसे एरर में उलझा देता है जिसका कारण समझना मुश्किल लगता है।

इस अध्याय के अंत में आप कर पाएंगे

  • पायथन की अपनी स्टैंडर्ड लाइब्रेरी और एक बाहरी पैकेज के अंतर को समझना
  • किसी प्रोजेक्ट के लिए एक वर्चुअल एनवायरनमेंट बनाना और सक्रिय करना
  • pip के ज़रिए पांडास इंस्टॉल करना और उसके वर्ज़न की पुष्टि करना
  • अपने हाथों से अपना पहला DataFrame बनाना और प्रिंट करना
  • ModuleNotFoundError को पढ़ना और यह पहचानना कि क्या ग़लत हुआ

ज़रूरी शर्तें: पायथन कोर्स से, टर्मिनल, फ़ोल्डर्स और आपका पहला प्रोजेक्ट और वेरिएबल्स और टाइप्स।


पांडास पायथन का हिस्सा नहीं है

पायथन के साथ जो कुछ भी आता है उसे स्टैंडर्ड लाइब्रेरी कहा जाता है — print, len, math, random सब वहीं रहते हैं। पांडास वहाँ नहीं रहता। यह एक बाहरी पैकेज है, जिसे अन्य लोगों ने लिखा है और PyPI नामक रिपॉजिटरी में प्रकाशित किया है।

इसे डाउनलोड करने वाला टूल pip है, जो पायथन के साथ ही आता है।

और यह पहला सवाल खड़ा करता है, जिसे अगर छोड़ दिया जाए तो बाद में परेशानी होती है: यह इंस्टॉल कहाँ होता है?

वर्चुअल एनवायरनमेंट क्यों ज़रूरी है

यदि आप pip install pandas टाइप करते हैं, तो पांडास आपकी पूरी मशीन के मुख्य पायथन में चला जाता है। एक प्रोजेक्ट के लिए यह ठीक काम करता है। लेकिन छह महीने बाद, जब किसी दूसरे प्रोजेक्ट को पांडास के किसी अलग वर्ज़न की ज़रूरत होगी, तो दोनों एक ही जगह के लिए टकराएँगे — और एक को ठीक करने से दूसरा टूट जाएगा।

इसका समाधान है प्रत्येक प्रोजेक्ट के लिए एक अलग कमरा: एक वर्चुअल एनवायरनमेंट। यह वास्तव में प्रोजेक्ट के अंदर का एक साधारण फ़ोल्डर होता है जो उस प्रोजेक्ट के पैकेजों को संभालता है। प्रोजेक्ट डिलीट करने पर पैकेज भी हट जाते हैं, और मशीन का मुख्य पायथन साफ़-सुथरा बना रहता है।

टर्मिनल में, अपने प्रोजेक्ट्स फ़ोल्डर में रहते हुए:

text
cd D:\python-lab
mkdir pandas-lab
cd pandas-lab
python -m venv .venv

अब इसे सक्रिय (activate) करें:

text
.venv\Scriptsctivate

एक बार सक्रिय होने के बाद, कमरे का नाम प्रॉम्प्ट के सामने दिखाई देने लगता है:

text
(.venv) PS D:\python-lab\pandas-lab>
यह (.venv) ही सब कुछ है। यदि आपको यह नहीं दिखता है, तो आप एनवायरनमेंट से बाहर हैं, और pip install पैकेज को कहीं और डाल देगा। हर नए टर्मिनल को दोबारा activate करने की आवश्यकता होती है — यह ऐसी चीज़ नहीं है जिसे आप एक बार सेट करके भूल जाएँ।

यदि PowerShell शिकायत करे कि स्क्रिप्ट्स चलाना अक्षम (disabled) है, तो इसे एक बार चलाएँ:

text
Set-ExecutionPolicy -Scope CurrentUser RemoteSigned

बाहर निकलने के लिए, deactivate टाइप करें।

इंस्टॉल करें, फिर सत्यापित करें

text
pip install pandas

कुछ सेकंड बाद यह Successfully installed ... के साथ समाप्त हो जाता है। ध्यान दें कि पांडास के साथ NumPy भी डाउनलोड हो गया — पांडास आंतरिक रूप से NumPy का उपयोग करता है, और pip इन निर्भरताओं को आपके लिए अपने आप हल कर देता है।

अब पुष्टि करें। check.py नामक एक फ़ाइल बनाएँ:

python
import pandas as pd

print(pd.__version__)
text
2.2.3

आपका नंबर अलग हो सकता है, जो कि बिल्कुल सामान्य है। महत्वपूर्ण बात यह है कि कोई वर्ज़न नंबर प्रिंट हुआ — इसका मतलब है कि पायथन को पांडास मिल गया।

import pandas as pd वाली लाइन पर दो बातें। import pandas पांडास को लाता है; as pd इसे एक संक्षिप्त नाम देता है। pd नाम अनिवार्य नहीं है, लेकिन दुनिया भर का लगभग सारा पांडास कोड इसी का उपयोग करता है — इसलिए कुछ और लिखने से आपका कोड दूसरों के लिए पढ़ना कठिन हो जाता है। परंपरा का पालन करें।


पूर्ण उदाहरण

first_frame.py:

python
import pandas as pd

# डिक्शनरी से एक DataFrame: प्रत्येक key एक कॉलम का नाम है,
# प्रत्येक list ऊपर से नीचे तक उस कॉलम की वैल्यूज़ है।
sales = pd.DataFrame({
    "product": ["pen", "notebook", "bag"],
    "quantity": [12, 5, 2],
    "price": [15.0, 60.0, 850.0],
})

print(sales)
text
product  quantity  price
0       pen        12   15.0
1  notebook         5   60.0
2       bag         2  850.0

जो प्रिंट हुआ है उसे ध्यान से देखें, क्योंकि इसका हर हिस्सा आने वाले अध्यायों में बहुत मायने रखता है।

शीर्ष पर कॉलम के नाम हैं — product, quantity, price। बाईं ओर 0, 1, 2 हैं। वे कोई कॉलम नहीं हैं; वे इंडेक्स (index) हैं, पंक्तियों के नाम। आपने उन्हें डिक्शनरी में नहीं लिखा था; पांडास ने शून्य से गिनती करते हुए उन्हें खुद प्रदान किया।

और price कॉलम में 15.0 पर ध्यान दें। आपने 15.0 लिखा था, इसलिए पूरा कॉलम दशमलव के रूप में प्रिंट होता है, भले ही 850.0 एक पूर्ण संख्या हो सकती थी। किसी कॉलम में प्रत्येक वैल्यू एक ही टाइप की होती है — यह पांडास का एक केंद्रीय नियम है, और अगले अध्याय का मुख्य विषय भी।

टेबल हाथ में होने पर उससे सवाल पूछना बहुत आसान है:

python
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())
text
(3, 3)
19

shape बताता है कि टेबल कितनी बड़ी है — तीन पंक्तियाँ, तीन कॉलम, उसी क्रम में। और 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\Scriptsctivate : 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 यह केवल DataFrame नहीं बल्कि pd.DataFrame होना चाहिए। import pandas as pd पूरी लाइब्रेरी को pd नाम के तहत लाता है, इसलिए इसके अंदर की हर चीज़ तक pd. के माध्यम से पहुँचा जाता है।