Pandas & NumPy Academy · पाठ

उपयोगी Series विधियाँ

Series का शीघ्र सारांश और रूपांतरण करने के लिए describe(), value_counts(), unique() और map() का उपयोग कीजिए।

पाठ 4, कुल 4 में से13 चरण

उपयोगी Series विधियाँ, CoddyKit पर Pandas & NumPy Academy का एक निःशुल्क पाठ है। यह 4 में से 4वाँ पाठ है। आप नीचे पूरा पाठ निःशुल्क पढ़ सकते हैं—फिर अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर के साथ ब्राउज़र में इसका व्यावहारिक अभ्यास कर सकते हैं। यह Pandas & NumPy Academy सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। Pandas & NumPy Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।

describe() से त्वरित सारांश

s.describe() एक ही कॉल में सांख्यिकीय सारांश बनाता है: count, mean, standard deviation, min, 25th percentile (Q1), median (Q2), 75th percentile (Q3) और max। स्ट्रिंग Series के लिए यह इसके बजाय count, unique, top और frequency लौटाता है। किसी डेटासेट की पहली बार जाँच करते समय किसी कॉलम के वितरण का अंदाज़ा पाने का यह सबसे तेज़ तरीका है।

import pandas as pd

ages = pd.Series([25, 32, 19, 45, 28, 31, 22, 40])
print(ages.describe())
# count     8.000000
# mean     30.250000
# std       8.406...
# min      19.000000
# 25%      24.250000
# 50%      29.500000
# 75%      34.750000
# max      45.000000

आवृत्ति तालिकाओं के लिए value_counts()

s.value_counts() एक नई Series लौटाता है, जिसमें unique मान इंडेक्स और उनकी उपस्थिति की संख्या डेटा के रूप में होती है; इसे संख्या के घटते क्रम में क्रमबद्ध किया जाता है। वास्तविक गणनाओं के बजाय अनुपात पाने के लिए normalize=True दें। किसी categorical कॉलम का वितरण समझने के लिए सबसे पहले चलाया जाने वाला यह उपयोगी ऑपरेशन है।

import pandas as pd

colors = pd.Series(['red', 'blue', 'red', 'green', 'blue', 'red'])
print(colors.value_counts())
# red      3
# blue     2
# green    1
print(colors.value_counts(normalize=True).round(2))
# red      0.50  blue  0.33  green  0.17

unique() और nunique()

s.unique() अलग-अलग मानों का NumPy array लौटाता है, जिसमें मान पहली बार आने के क्रम में होते हैं (value_counts के विपरीत, जो आवृत्ति के आधार पर क्रमबद्ध करता है)। s.nunique() अलग-अलग मानों की संख्या पूर्णांक के रूप में लौटाता है — यही कॉलम की cardinality है। दोनों डिफ़ॉल्ट रूप से NaN को छोड़ देते हैं। NaN को भी एक अलग मान के रूप में गिनने के लिए nunique(dropna=False) का उपयोग करें।

import pandas as pd

s = pd.Series(['apple', 'banana', 'apple', 'cherry', 'banana'])
print(s.unique())    # ['apple' 'banana' 'cherry']
print(s.nunique())   # 3

तत्व-दर-तत्व रूपांतरण के लिए map()

s.map() प्रत्येक तत्व पर फ़ंक्शन, dict या किसी अन्य Series को लागू करता है। जब आप dict देते हैं, तो प्रत्येक मान को संबंधित dict मान से बदल दिया जाता है और dict में मौजूद न होने वाले मान NaN बन जाते हैं। जब आप फ़ंक्शन देते हैं, तो वह प्रत्येक तत्व पर लागू होता है। categorical लेबलों को नए कोड में बदलने या lookup तालिकाएँ लागू करने के लिए map आदर्श है।

import pandas as pd

grades = pd.Series(['A', 'B', 'C', 'A', 'B'])
gpa = {'A': 4.0, 'B': 3.0, 'C': 2.0}
print(grades.map(gpa))
# 0    4.0
# 1    3.0
# 2    2.0
# 3    4.0
# 4    3.0

कस्टम फ़ंक्शन के लिए apply()

s.apply(func) प्रत्येक तत्व पर Python callable लागू करता है और परिणाम एकत्र करता है। map() के विपरीत, इसे अधिक जटिल फ़ंक्शनों के लिए बनाया गया है, जो scalar के अलावा अन्य ऑब्जेक्ट लौटा सकते हैं। सरल तत्व-दर-तत्व रूपांतरणों के लिए map() या वेक्टराइज़्ड expression को प्राथमिकता दें; जब तर्क को सीधे वेक्टराइज़ करना बहुत जटिल हो, तभी apply() का उपयोग करें।

import pandas as pd

sentences = pd.Series(['Hello world', 'Pandas is great', 'Data science'])
word_counts = sentences.apply(lambda x: len(x.split()))
print(word_counts)
# 0    2
# 1    3
# 2    2

sort_values() और sort_index()

s.sort_values() डेटा मानों के आधार पर Series को आरोही क्रम में क्रमबद्ध करके लौटाता है (अवरोही क्रम के लिए ascending=False दें)। s.sort_index() इंडेक्स लेबलों के आधार पर क्रमबद्ध करता है। डिफ़ॉल्ट रूप से इनमें से कोई भी मूल Series को संशोधित नहीं करता। मूल Series को उसी स्थान पर संशोधित करने के लिए inplace=True दें (आधुनिक Pandas कोड में, जहाँ ऑपरेशनों की श्रृंखला बनाई जाती है, यह कम अनुशंसित है)।

import pandas as pd

s = pd.Series([30, 10, 50, 20], index=['d', 'a', 'c', 'b'])
print(s.sort_values())
# a    10
# b    20
# d    30
# c    50
print(s.sort_index())
# a    10
# b    20
# c    50
# d    30

सदस्यता जाँचने के लिए isin()

s.isin(values) एक बूलियन Series लौटाता है, जिसमें वह स्थान True होता है जहाँ तत्व दी गई सूची या सेट में मौजूद होता है। यह कई | शर्तें लिखने की तुलना में अधिक पठनीय है और बड़े सेट के लिए काफ़ी तेज़ भी है। इसका उपयोग आम तौर पर किसी विशेष समूह से संबंधित पंक्तियों को फ़िल्टर करने या किसी लुकअप सूची से मेल खाने वाले रिकॉर्ड को चिह्नित करने के लिए किया जाता है।

import pandas as pd

countries = pd.Series(['DE', 'US', 'FR', 'UK', 'US', 'DE'])
nordics = ['DE', 'FR']
print(countries.isin(nordics))
# 0     True  1    False  2     True  3    False  4    False  5     True
print(countries[countries.isin(nordics)])

रेंज फ़िल्टर करने के लिए between()

s.between(left, right, inclusive='both') एक बूलियन Series लौटाता है, जिसमें वह स्थान True होता है जहाँ मान [left, right] की सीमा में आता है। डिफ़ॉल्ट रूप से दोनों सीमाएँ शामिल होती हैं। यह (s >= left) & (s <= right) लिखने की तुलना में अधिक संक्षिप्त है और उद्देश्य को स्पष्ट रूप से बताता है। यह आयु-समूह या मूल्य-श्रेणी जैसी संख्यात्मक सीमाओं को फ़िल्टर करने में उपयोगी है।

import pandas as pd

scores = pd.Series([45, 72, 83, 91, 55, 68])
pass_mask = scores.between(60, 100)
print(pass_mask)
# 0    False  1    True  2    True  3    True  4    False  5    True
print(scores[pass_mask].values)  # [72 83 91 68]

त्वरित निरीक्षण के लिए head() और tail()

s.head(n) पहले n तत्व लौटाता है (डिफ़ॉल्ट 5), जबकि s.tail(n) अंतिम n तत्व लौटाता है। लंबे Series की शुरुआत और अंत को बिना हज़ारों पंक्तियाँ प्रिंट किए देखने के लिए डेटा की जाँच करते समय इनका लगातार उपयोग किया जाता है। ये एक नया Series (एक स्लाइस) लौटाते हैं, इसलिए मूल Series में बदलाव नहीं करते।

import pandas as pd

s = pd.Series(range(100))
print(s.head(3))
# 0    0
# 1    1
# 2    2
print(s.tail(3))
# 97    97
# 98    98
# 99    99

नाम बदलने के लिए rename()

s.rename('new_name') अलग name विशेषता वाला नया Series लौटाता है। इंडेक्स लेबल का नाम बदलने के लिए कोई डिक्शनरी या फ़ंक्शन पास करें: s.rename(index={'old': 'new'})। Series को DataFrame में मिलाने से पहले नाम बदलना महत्वपूर्ण है, क्योंकि Series की name विशेषता कॉलम हेडर बन जाती है। कच्चे मान फिर से असाइन करने के बजाय हमेशा नाम बदलें।

import pandas as pd

s = pd.Series([1, 2, 3], index=['a', 'b', 'c'], name='original')
renamed = s.rename('updated').rename(index={'a': 'x', 'b': 'y', 'c': 'z'})
print(renamed)
# x    1
# y    2
# z    3
# Name: updated

idxmin() और idxmax()

s.idxmin() न्यूनतम मान का इंडेक्स लेबल लौटाता है और s.idxmax() अधिकतम मान का लेबल लौटाता है। जब इंडेक्स में तारीखों या उत्पाद नामों जैसे अर्थपूर्ण लेबल हों, तब यह argmin/argmax से अधिक उपयोगी है—आपको केवल स्थान संख्या नहीं, बल्कि वास्तविक पहचानकर्ता मिलता है।

import pandas as pd

scores = pd.Series({'Alice': 88, 'Bob': 73, 'Carol': 95, 'Dan': 60})
print('Best:', scores.idxmax(), scores.max())   # Carol 95
print('Worst:', scores.idxmin(), scores.min())  # Dan   60

त्वरित जाँच

इस पाठ में बताए गए उपयोगी Series तरीकों की अपनी समझ जाँचें।

पाठ का पुनरावलोकन

इस पाठ में आपने सीखा: describe() एक ही कॉल में सांख्यिकीय सारांश देता है, value_counts() अद्वितीय मानों की आवृत्ति तालिका बनाता है, और map() डिक्शनरी का उपयोग करके मानों का रूपांतरण करता है, जबकि apply() प्रत्येक तत्व पर कस्टम फ़ंक्शन चलाता है। अब हम DataFrame के साथ काम करना शुरू करेंगे—यह Pandas डेटा विश्लेषण का द्वि-आयामी मुख्य ढाँचा है।

शुरुआत निःशुल्क

एआई शिक्षक के साथ Python सीखें — निःशुल्क

अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।

पाठ्यक्रम
30
पाठ
120

अक्सर पूछे जाने वाले प्रश्न

क्या “उपयोगी Series विधियाँ” पाठ निःशुल्क है?

हाँ—“उपयोगी Series विधियाँ” का पूरा पाठ यहाँ वेब पर निःशुल्क पढ़ा जा सकता है। इंटरैक्टिव अभ्यास (अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर) करने और Pandas & NumPy Academy पाठ्यक्रम का बाकी हिस्सा अनलॉक करने के लिए CoddyKit PRO लें। Pandas & NumPy Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।

“उपयोगी Series विधियाँ” में मैं क्या सीखूँगा?

Series का शीघ्र सारांश और रूपांतरण करने के लिए describe(), value_counts(), unique() और map() का उपयोग कीजिए। आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ Pandas & NumPy Academy का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।

क्या Pandas & NumPy Academy शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?

पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर Pandas & NumPy Academy शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 4 में से 4वाँ पाठ है।

“उपयोगी Series विधियाँ” पाठ पूरा करने में कितना समय लगता है?

CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।

क्या मैं इस Pandas & NumPy Academy पाठ में कोड लिख और चला सकता हूँ?

हाँ। हर Pandas & NumPy Academy पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।

इस पाठ्यक्रम के सभी पाठ

  1. Series बनाना
  2. लेबल-आधारित और स्थिति-आधारित एक्सेस
  3. Series पर वेक्टराइज़्ड ऑपरेशन
  4. उपयोगी Series विधियाँ
← Pandas & NumPy Academy पर वापस जाएँ