اذهب إلى المحتوى

السؤال

نشر

السلام عليكم

ده الكود

disease_year_distribution = data_train.groupby(['year_hct' , 'prim_disease_hct']).size().unstack()
print(disease_year_distribution)

ودي النتجيه 

prim_disease_hct    0       1      2    3    4     5     6     7    8      9      10     11     12   13    14    15    16    17
year_hct
2008              19.0   319.0  263.0  NaN  1.0   3.0   6.0   7.0  2.0   51.0   97.0   51.0   64.0  2.0   3.0  15.0  15.0   2.0
2009               5.0    59.0   30.0  NaN  NaN   NaN   1.0   1.0  NaN   10.0   13.0   10.0    3.0  NaN   2.0   NaN   4.0   1.0
2010               1.0    32.0   46.0  NaN  NaN   NaN   NaN   NaN  NaN    8.0   16.0   13.0    3.0  NaN   1.0   1.0   NaN   NaN
2011               5.0    87.0   93.0  NaN  NaN   NaN   3.0   NaN  1.0   31.0   47.0   24.0   13.0  NaN   2.0   1.0   2.0   NaN
2012              10.0   263.0  201.0  NaN  NaN   5.0   7.0   6.0  1.0   64.0  122.0   52.0   30.0  4.0   6.0  11.0   8.0   4.0
2013              20.0   277.0  160.0  2.0  NaN   NaN  14.0   3.0  NaN   78.0  112.0   58.0   30.0  1.0   7.0  11.0  10.0   4.0
2014               6.0   132.0   94.0  NaN  NaN   NaN   6.0   2.0  NaN   35.0   48.0   19.0   16.0  NaN   5.0   6.0   3.0   NaN
2015              18.0   328.0  395.0  NaN  NaN   1.0   8.0   3.0  1.0   88.0  165.0   52.0   45.0  5.0   9.0   7.0   9.0   3.0
2016              53.0   708.0  632.0  3.0  NaN   3.0  36.0  16.0  4.0  186.0  322.0  119.0   87.0  5.0  13.0  45.0  26.0  11.0
2017              57.0   792.0  723.0  2.0  1.0   6.0  19.0  14.0  1.0  148.0  256.0  145.0   92.0  3.0  10.0  40.0  20.0   8.0
2018              97.0  1035.0  748.0  1.0  1.0  16.0  32.0  19.0  1.0  191.0  264.0  205.0  123.0  5.0  22.0  39.0  29.0   5.0
2019               7.0    61.0   34.0  NaN  NaN   4.0   NaN   1.0  1.0   11.0   16.0   11.0    4.0  1.0   3.0   3.0   3.0   NaN

 

Recommended Posts

  • 0
نشر

وجود قيم NaN في الجدول الناتج يمكن أن يكون بسبب طبيعة عملية groupby و unstack، حتى لو قمت بمسح القيم الناقصة من البيانات الأصلية، فإن القيم الفارغة قد تظهر في النتيجة بسبب الطريقة التي ترتب بها البيانات عند تنفيذ العملية.

حيث أن unstack يقوم بتحويل القيم الفريدة في عمود prim_disease_hct إلى أعمدة، و إذا لم يكن هناك أي بيانات مطابقة بين year_hct وقيمة معينة من prim_disease_hct في مجموعة بيانات معينة، فستظهر تلك الخلية كـNaN، لأن مكتبة pandas تتوقع وجود جميع القيم الممكنة لكنه لم يجدها.

  • 0
نشر

في هذه الحالة القيم NaN ظاهرة في الجدول لأن عملية groupby تقوم بإنشاء جدول تقاطعي ما يعرف ب cross-tabulation يحتوي على جميع التركيبات الممكنة بين year_hct و prim_disease_hct وعندما لا يوجد أي حالات لمرض معين في سنة معينة سيتم عرضها ك NaN أي Not a Number لذا إذا كنت تريد إزالة قيم NaN من الجدول يمكنك استخدام fillna(0) لاستبدال NaN بالقيمة 0 كالتالي:

disease_year_distribution = data_train.groupby(['year_hct' , 'prim_disease_hct']).size().unstack().fillna(0)
print(disease_year_distribution)

هذا سيعرض نفس الجدول ولكن مع استبدال جميع قيم NaN بالصفر مما يعني أنه لم تكن هناك حالات لهذا المرض في تلك السنة المحددة.

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...