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