Mohamed Elnemr نشر 7 سبتمبر 2021 أرسل تقرير نشر 7 سبتمبر 2021 أريد أن أعرف الفرق بين الدالة groupby("x").count و groupby("x").size 1 اقتباس
0 Ali Haidar Ahmad نشر 8 سبتمبر 2021 أرسل تقرير نشر 8 سبتمبر 2021 size و count كل منهما يستخدم من أجل أغراض مختلفة. size هو attribute تقوم بحساب حجم (أو طول) الكائن الذي تم استدعاؤه عليه. وبطبيعة الحال يتضمن هذا أيضاً الصفوف / القيم التي هي NaN. أما count فهو تابع مهمته عد الخلايا التي ليست NaN لكل عمود أو صف. import pandas as pd import numpy as np df = pd.DataFrame({'col': ['x', np.nan, 'x']}) df """ col 0 x 1 NaN 2 x """ df.col.size # 3 df.col.count() # 2 nan لم يحسب ال أيضاً هناك اختلاف في بنية الناتج عند استدعاء GroupBy.size و GroupBy.count. حيث أن GroupBy.count تعيد DataFrame أما GroupBy.siz تعيد series: import pandas as pd import numpy as np df = pd.DataFrame({ 'gb': list('aaab'), 'col': ['x', np.nan, 'x',"x"]}) df """ gb col 0 a x 1 a NaN 2 a x 3 b x """ df.groupby('gb').size() """ gb a 3 b 1 dtype: int64 """ df.groupby('gb').count() """ col gb a 2 b 1 """ type(df.groupby('gb').count()) # pandas.core.frame.DataFrame type(df.groupby('gb').size()) # pandas.core.series.Series هناك اختلاف أخير عند استخدامنا ل pivot_table. لنفترض أننا نود حساب ال cross tabulation لـلداتافريم التالي: df """ A B 0 0 1 1 0 1 2 1 2 3 0 2 4 0 0 """ pd.crosstab(df.A, df.B) """ B 0 1 2 A 0 1 2 1 1 0 0 1 """ #يمكنك عرض الحجم pivot_table باستخدام df.pivot_table(index='A', columns='B', aggfunc='size', fill_value=0) """ B 0 1 2 A 0 1 2 1 1 0 0 1 """ #لايعمل هنا حيث يتم إرجاع داتافريم فارغ count لكن df.pivot_table(index='A', columns='B', aggfunc='count') """ Empty DataFrame Columns: [] Index: [0, 1] """ اقتباس
0 Ahmed Sharshar نشر 7 سبتمبر 2021 أرسل تقرير نشر 7 سبتمبر 2021 الفرق المحوري بين الدالتين أن size يمكن أن تحتوي على NaN اما count فلا،أنظر المثال التالي للتوضيح أكثر: In [1]: df = pd.DataFrame({'x':[0,1,2,2], 'y':[1,2,4,np.NaN], 'z':np.random.randn(4)}) df Out[46]: a b c 0 0 1 1.067627 1 1 2 0.458084 2 2 NaN -2.238091 3 2 4 1.256943 In [2]: print(df.groupby(['x'])['y'].count()) x 0 1 1 1 2 1 In [3]: print(df.groupby(['x'])['y'].size()) x 0 1 1 1 2 2 لاحظ أنه في count لم يقم بعَد ال NaN بينما قام بعَدها في size. 1 اقتباس
السؤال
Mohamed Elnemr
أريد أن أعرف الفرق بين الدالة
groupby("x").countو
groupby("x").size2 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.