पांडा: अद्वितीय मान कैसे खोजें और nan को कैसे अनदेखा करें


आप अद्वितीय मानों के लिए पांडा को खोजने और NaN मानों को अनदेखा करने के लिए निम्नलिखित कस्टम फ़ंक्शन को परिभाषित कर सकते हैं:

 def unique_no_nan(x):
    return x. dropna (). single ()

यह फ़ंक्शन एक पांडा श्रृंखला लौटाएगा जिसमें NaN मानों को छोड़कर प्रत्येक अद्वितीय मान शामिल है।

निम्नलिखित उदाहरण दिखाते हैं कि निम्नलिखित पांडा डेटाफ़्रेम के साथ विभिन्न परिदृश्यों में इस फ़ंक्शन का उपयोग कैसे करें:

 import pandas as pd
import numpy as np

#createDataFrame
df = pd. DataFrame ({' team ': ['Mavs', 'Mavs', 'Mavs', 'Celtics', 'Celtics', 'Celtics'],
                   ' points ': [95, 95, 100, 113, 100, np.nan]})

#view DataFrame
print (df)

      team points
0 Mavs 95.0
1 Mavs 95.0
2 Mavs 100.0
3 Celtics 113.0
4 Celtics 100.0
5 Celtics NaN

उदाहरण 1: पांडा कॉलम में अद्वितीय मान खोजें और NaN मानों को अनदेखा करें

मान लीजिए कि हम डेटाफ़्रेम के पॉइंट कॉलम में सभी अद्वितीय मान प्रदर्शित करने के लिए पांडा अद्वितीय() फ़ंक्शन का उपयोग करते हैं:

 #display unique values in 'points' column
df[' points ']. single ()

array([ 95., 100., 113., no])

ध्यान दें कि यूनिक() फ़ंक्शन में डिफ़ॉल्ट रूप से परिणामों में nan शामिल होता है।

हालाँकि, मान लीजिए कि हम इसके बजाय अंक कॉलम में अद्वितीय मान प्रदर्शित करने के लिए अपने कस्टम यूनिक_नो_नान() फ़ंक्शन का उपयोग करते हैं:

 #display unique values in 'points' column and ignore NaN
unique_no_nan(df[' points '])

array([ 95., 100., 113.])

हमारा फ़ंक्शन पॉइंट कॉलम में प्रत्येक अद्वितीय मान लौटाता है, जिसमें NaN शामिल नहीं है।

उदाहरण 2: पांडास ग्रुपबी में अद्वितीय मान खोजें और NaN मानों को अनदेखा करें

मान लीजिए कि हम टीम कॉलम द्वारा समूहीकृत पॉइंट कॉलम में सभी अद्वितीय मान प्रदर्शित करने के लिए पांडा ग्रुपबी() और एजीजी() फ़ंक्शन का उपयोग करते हैं:

 #display unique values in 'points' column grouped by team
df. groupby (' team ')[' points ']. agg ([' single '])

	unique
team	
Celtics [113.0, 100.0, nah]
Mavs [95.0, 100.0]

ध्यान दें कि यूनिक() फ़ंक्शन में डिफ़ॉल्ट रूप से परिणामों में nan शामिल होता है।

हालाँकि, मान लीजिए कि हम इसके बजाय टीम कॉलम द्वारा समूहीकृत अंक कॉलम में अद्वितीय मान प्रदर्शित करने के लिए अपने कस्टम यूनिक_नो_नान() फ़ंक्शन का उपयोग करते हैं:

 #display unique values in 'points' column grouped by team and ignore NaN
df. groupby (' team ')[' points ']. apply ( lambda x: unique_no_nan(x))

team
Celtics [113.0, 100.0]
Mavs [95.0, 100.0]
Name: points, dtype: object

हमारा फ़ंक्शन प्रत्येक टीम के लिए अंक कॉलम में प्रत्येक अद्वितीय मान लौटाता है, NaN मानों की गणना नहीं करता है।

अतिरिक्त संसाधन

निम्नलिखित ट्यूटोरियल बताते हैं कि पांडा में अन्य सामान्य कार्य कैसे करें:

पांडा: डेटाफ़्रेम में एकल पंक्तियों का चयन कैसे करें
पांडा: इंडेक्स कॉलम से अद्वितीय मान कैसे प्राप्त करें
पांडा: दो स्तंभों के अद्वितीय संयोजनों की गणना कैसे करें

एक टिप्पणी जोड़ने

आपका ईमेल पता प्रकाशित नहीं किया जाएगा. आवश्यक फ़ील्ड चिह्नित हैं *