الباندا: كيفية العثور على قيم فريدة وتجاهل nan


يمكنك تحديد الوظيفة المخصصة التالية للبحث عن قيم فريدة في الباندا وتجاهل قيم NaN:

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

ستعيد هذه الوظيفة سلسلة الباندا التي تحتوي على كل قيمة فريدة باستثناء قيم NaN.

توضح الأمثلة التالية كيفية استخدام هذه الوظيفة في سيناريوهات مختلفة مع الباندا DataFrame التالية:

 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: ابحث عن القيم الفريدة في عمود Pandas وتجاهل قيم NaN

لنفترض أننا نستخدم وظيفة الباندا الفريدة () لعرض جميع القيم الفريدة في عمود النقاط في DataFrame:

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

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

لاحظ أن الدالة الفريدة () تتضمن nan في النتائج بشكل افتراضي.

ومع ذلك، لنفترض أننا بدلاً من ذلك نستخدم دالة Unique_no_nan() المخصصة لعرض القيم الفريدة في عمود النقاط :

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

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

تقوم وظيفتنا بإرجاع كل قيمة فريدة في عمود النقاط ، ولا تشمل NaN.

المثال 2: ابحث عن قيم فريدة في Pandas Groupby وتجاهل قيم NaN

لنفترض أننا نستخدم الدالتين pandas groupby() و agg() لعرض جميع القيم الفريدة في عمود النقاط ، مجمعة حسب عمود الفريق :

 #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 في النتائج بشكل افتراضي.

ومع ذلك، لنفترض أننا بدلاً من ذلك نستخدم دالة Unique_no_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.

مصادر إضافية

تشرح البرامج التعليمية التالية كيفية أداء الوظائف الشائعة الأخرى في الباندا:

الباندا: كيفية تحديد صفوف مفردة في DataFrame
الباندا: كيفية الحصول على قيم فريدة من عمود الفهرس
الباندا: كيفية حساب مجموعات فريدة من عمودين

Add a Comment

ایمئیل یایینلانمایاجاق ایسته‎نیله‎ن بوشلوقلار خاللانمیشدیر *