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