पांडा का उपयोग करके डेटा हैंडलिंग में हम वास्तविक फाइलों — विशेषकर CSV और Excel फाइलों — से डेटा को पढ़ना, संग्रहीत करना और संसाधित करना सीखेंगे। डेटा हैंडलिंग डेटा विश्लेषण की पहली और सबसे महत्वपूर्ण सीढ़ी है। इस अध्याय में हम read_csv(), to_csv(), read_excel(), to_excel() और डेटा की सफाई की विधियों का विस्तार से अध्ययन करेंगे। इन विधियों से बाहरी डेटा को पांडा डेटाफ्रेम में लाकर विश्लेषण किया जा सकता है।
CSV (Comma Separated Values) डेटा भंडारण का सबसे सामान्य प्रारूप है। पांडा में read_csv() फलन से CSV फाइल पढ़ी जाती है:
import pandas as pd
df = pd.read_csv('छात्र.csv')
print(df)
df = pd.read_csv('डेटा.csv', index_col=0)
df = pd.read_csv('डेटा.csv', nrows=10)
index_col=0 — पहला स्तंभ सूचकांक के रूप में।nrows=10 — केवल पहली 10 पंक्तियां पढ़ना।header=None — जब फाइल में शीर्षक पंक्ति न हो।डेटाफ्रेम को CSV फाइल में सहेजने के लिए to_csv() का उपयोग होता है:
df.to_csv('परिणाम.csv')
df.to_csv('परिणाम.csv', index=False)
index=False देने पर सूचकांक (पंक्ति संख्या) फाइल में नहीं लिखा जाता। सामान्यतः index=False ही उपयुक्त रहता है, अन्यथा फाइल में अतिरिक्त स्तंभ बन जाता है।
Excel फाइलों के साथ कार्य के लिए read_excel() और to_excel() का उपयोग होता है:
df = pd.read_excel('डेटा.xlsx')
df = pd.read_excel('डेटा.xlsx', sheet_name='विक्रय')
df.to_excel('आउटपुट.xlsx', index=False)
Excel फाइलों को पढ़ने के लिए openpyxl या xlrd जैसी लाइब्रेरी आवश्यक हो सकती है। sheet_name पैरामीटर से विशेष वर्कशीट का चयन होता है।
read_csv() के कुछ प्रमुख पैरामीटर:
df = pd.read_csv('डेटा.csv', sep=';')
df = pd.read_csv('डेटा.csv', header=None, names=['A', 'B', 'C'])
df = pd.read_csv('डेटा.csv', skiprows=2)
df = pd.read_csv('डेटा.csv', usecols=['नाम', 'अंक'])
sep — विभाजक (डिफ़ॉल्ट अल्पविराम)।names — स्तंभों के नाम स्वयं निर्धारित करना।skiprows — पहली n पंक्तियां छोड़ना।usecols — केवल निर्दिष्ट स्तंभ पढ़ना।फाइल से डेटा पढ़ने के बाद उसकी जांच के लिए विधियां:
df.head()
df.tail()
df.shape
df.info()
df.describe()
df.dtypes
df.isnull().sum()
isnull().sum() — प्रत्येक स्तंभ में गुम (missing) मानों की संख्या।head()/tail() — प्रारंभिक/अंतिम पंक्तियां।describe() — सांख्यिकीय सारांश।वास्तविक डेटा में NaN मान सामान्य हैं। इन्हें प्रबंधित करने की विधियां:
df = df.dropna()
df = df.fillna(0)
df = df.fillna(df.mean())
dropna() — NaN वाली पंक्तियां हटाता है।fillna(मान) — NaN को निर्दिष्ट मान से भरता है।fillna(df.mean()) — NaN को स्तंभ के औसत से भरता है।duplicated() — डुप्लिकेट पंक्तियों की जांच।drop_duplicates() — डुप्लिकेट पंक्तियां हटाना।astype() — डेटाटाइप बदलना।replace() — मानों का प्रतिस्थापन।df = df.drop_duplicates()
df['अंक'] = df['अंक'].astype(int)
df['शहर'] = df['शहर'].replace('DEL', 'दिल्ली')
print(df['अंक'].mean())
print(df['अंक'].median())
print(df['अंक'].mode())
print(df['अंक'].std())
print(df.describe())
mean() — माध्यmedian() — मध्यिकाmode() — बहुलकstd() — मानक विचलनvar() — प्रसरणउच्च = df[df['अंक'] > 80]
समूह = df.groupby('शहर')['अंक'].mean()
क्रमित = df.sort_values('अंक', ascending=False)
डेटा हैंडलिंग के बाद फ़िल्टरिंग, समूहीकरण और सॉर्टिंग से अर्थपूर्ण जानकारी निकाली जाती है। फ़िल्टरिंग में बूलियन शर्तें लागू होती हैं, जिन्हें &, | और ~ संचालकों से संयोजित किया जा सकता है। समूहीकरण में समान मानों वाली पंक्तियों के समूह बनते हैं और उन पर एग्रीगेट फलन लागू होते हैं। सॉर्टिंग से डेटा को आरोही या अवरोही क्रम में व्यवस्थित किया जाता है। इन तीनों प्रक्रियाओं का सही क्रम में उपयोग डेटा विश्लेषण को सरल और सटीक बनाता है। फ़िल्टरिंग के लिए df[df['स्तंभ'] > मान] का प्रारूप सबसे सामान्य है और इसे बड़े डेटा सेटों में बहुत तेजी से निष्पादित किया जाता है। groupby के बाद किसी भी एग्रीगेट फलन — sum, mean, count, max या min — का उपयोग किया जा सकता है, जो प्रत्येक समूह के लिए अलग-अलग परिणाम देता है। सॉर्टिंग में ascending पैरामीटर द्वारा क्रम की दिशा नियंत्रित की जाती है। इन विधियों का संयोजन वास्तविक डेटा रिपोर्टों को तैयार करने का आधार है, जैसे शहरवार औसत, वर्गवार उत्तीर्णता दर या माहवार बिक्री का सारांश। परीक्षा में इन सभी संक्रियाओं के परिणामों का अनुमान लगाने से संबंधित प्रश्न प्रायः पूछे जाते हैं, इसलिए प्रत्येक विधि के आउटपुट का अभ्यास आवश्यक है।
वास्तविक जीवन में डेटा सेट बहुत बड़े होते हैं, अतः उन्हें प्रबंधित करने के लिए पांडा अनेक सुविधाएं प्रदान करता है। df.shape से पंक्तियों और स्तंभों की संख्या का पता चलता है, जिससे डेटा की विशालता का अनुमान लगता है। df.info() डेटाटाइप, गैर-नल मानों की संख्या और स्मृति उपयोग की सूचना देता है। जब डेटा सेट बहुत बड़ा हो, तो nrows पैरामीटर के द्वारा केवल कुछ पंक्तियां पढ़कर शीघ्र विश्लेषण किया जा सकता है। इसी प्रकार usecols से केवल आवश्यक स्तंभों को ही फाइल से पढ़ा जाता है, जिससे समय और स्मृति दोनों की बचत होती है। df.sample(n) कुछ यादृच्छिक पंक्तियों का नमूना देता है, जो बड़े डेटा के प्रतिनिधि विश्लेषण में सहायक है। df.describe() संख्यात्मक स्तंभों का सांख्यिकीय सारांश प्रस्तुत करता है, जिसमें माध्य, मानक विचलन और क्वार्टाइल शामिल होते हैं। इन विधियों की जानकारी परीक्षा के साथ-साथ व्यावहारिक परियोजनाओं में भी अत्यंत उपयोगी सिद्ध होती है, क्योंकि इनसे बड़े डेटा सेट में शीघ्रता से अर्थपूर्ण जानकारी प्राप्त की जा सकती है।
| विधि | कार्य |
|---|---|
pd.read_csv() |
CSV पढ़ना |
df.to_csv() |
CSV में सहेजना |
pd.read_excel() |
Excel पढ़ना |
df.to_excel() |
Excel में सहेजना |
| पैरामीटर | कार्य |
|---|---|
sep |
विभाजक |
header=None |
शीर्षक नहीं है |
names |
स्तंभ नाम |
index_col |
सूचकांक स्तंभ |
nrows |
पंक्तियों की सीमा |
usecols |
स्तंभ चयन |
skiprows |
पंक्तियां छोड़ना |
| विधि | कार्य |
|---|---|
dropna() |
NaN पंक्तियां हटाना |
fillna() |
NaN भरना |
drop_duplicates() |
डुप्लिकेट हटाना |
astype() |
डेटाटाइप बदलना |
replace() |
मान बदलना |
read_csv() और to_csv() के महत्वपूर्ण पैरामीटर याद रखें — sep, header, names, index_col, nrows।df.head(), df.shape, df.info() डेटा की जांच के पहले चरण हैं।isnull().sum() गुम मानों की गणना में प्रयुक्त होता है।drop_duplicates() से डुप्लिकेट पंक्तियां हटाना याद रखें।इस अध्याय में हमने पांडा के साथ डेटा हैंडलिंग की प्रमुख विधियों का अध्ययन किया। CSV और Excel फाइलों से डेटा पढ़ना (read_csv, read_excel) और सहेजना (to_csv, to_excel), डेटा की प्रारंभिक जांच, गुम डेटा का प्रबंधन (dropna, fillna) और डेटा की सफाई (drop_duplicates, astype, replace) सभी महत्वपूर्ण कौशल हैं। वास्तविक दुनिया का डेटा प्रायः अपूर्ण होता है, अतः इसे साफ़ करना विश्लेषण से पहले अनिवार्य है। फाइल पठन के विकल्पों, जैसे sep, header, names और index_col की सहायता से विभिन्न प्रारूपों की फाइलों को सही ढंग से पढ़ा जा सकता है। NaN मानों की गणना के लिए isnull().sum() और उन्हें भरने के लिए fillna() तथा हटाने के लिए dropna() का उपयोग परीक्षा में प्रायः पूछा जाता है। इन विधियों का नियमित अभ्यास विद्यार्थी को वास्तविक डेटा परियोजनाओं में सक्षम बनाता है, जहां डेटा सफाई विश्लेषण की सबसे बड़ी चुनौती होती है। अगले अध्याय में हम प्रैक्टिकल फाइल कार्य का अध्ययन करेंगे, जिसमें इन सभी विधियों के व्यावहारिक अनुप्रयोग शामिल हैं।