Ali Ahmed55 نشر 15 يناير أرسل تقرير نشر 15 يناير السلام عليكم ده الكود 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 2 اقتباس
0 Chihab Hedidi نشر 15 يناير أرسل تقرير نشر 15 يناير وجود قيم NaN في الجدول الناتج يمكن أن يكون بسبب طبيعة عملية groupby و unstack، حتى لو قمت بمسح القيم الناقصة من البيانات الأصلية، فإن القيم الفارغة قد تظهر في النتيجة بسبب الطريقة التي ترتب بها البيانات عند تنفيذ العملية. حيث أن unstack يقوم بتحويل القيم الفريدة في عمود prim_disease_hct إلى أعمدة، و إذا لم يكن هناك أي بيانات مطابقة بين year_hct وقيمة معينة من prim_disease_hct في مجموعة بيانات معينة، فستظهر تلك الخلية كـNaN، لأن مكتبة pandas تتوقع وجود جميع القيم الممكنة لكنه لم يجدها. 1 اقتباس
0 ياسر مسكين نشر 15 يناير أرسل تقرير نشر 15 يناير في هذه الحالة القيم 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 بالصفر مما يعني أنه لم تكن هناك حالات لهذا المرض في تلك السنة المحددة. 1 اقتباس
السؤال
Ali Ahmed55
السلام عليكم
ده الكود
ودي النتجيه
3 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.