ووفقا لتحليل Businessbroadway، والمهنيين البيانات ستنفق ما يصل الى 60 من وقتهم جمع وتنظيف وتصور البيانات.
المصدر: Businessbroadway
أحد الجوانب الرئيسية لكيفية تنظيف ومعالجة البيانات المرئية والبيانات المفقودة. يوفر الباندا بعض الوظائف الأساسية في شكل وسائل fillna. على الرغم من أن العمل fillna جيدا في أبسط الحالات، ولكن طالما أن يصبح مجموعة البيانات أو تسلسل البيانات ذات الصلة، وسوف يكون مشكلة. هذه المادة سوف يناقش تقنيات لمعالجة هذه الحالات أكثر تعقيدا.
هذه عادة ما تحدث في مجموعة البيانات عن طريق منطقة مختلفة (السلاسل الزمنية)، وحتى المجموعة الفرعية منها. أمثلة من الحالات في مناطق مختلفة من الشهر، وهو موسم (عادة ما يكون الوقت) أو فترة من الامطار الغزيرة. مثال على ذلك هو البيانات بين الجنسين في مجموعات، وأمثلة لمجموعة فرعية من العمر والعرق.
أتى هذا المقال مع رمز. لذلك أنت حر لبدء الدفتري، مجرد بداية.
هيكل المقالة:
الباندا fillna نظرة عامة
عندما لا علاقة لمعالجة البيانات المفقودة الفرز
عندما يأمر ذات الصلة لمعالجة البيانات المفقودة
الباندا fillna نظرة عامة
صور من Pixabay
وثلاثة في عداد المفقودين الباندا البيانات عن طريق الاتصال وضع معالجة fillna:
-
طريقة = 'ffill': ffill نتطلع إلى الأمام أو تعبئة قيمة غير خالية، حتى أنه واجه قيمة غير خالية آخر
-
طريقة = 'bfill': غير خالية القيم bfill أو ملء الوراء الملاحظة الأولى إلى الوراء نشر حتى واجه قيمة غير خالية آخر
-
قيم صريحة: يمكن أيضا تعيين قيمة دقيقة لاستبدال كافة القيم في عداد المفقودين. على سبيل المثال، قد تكون هذه القيمة البديلة -999 لتمثيل قيمة عداد المفقودين.
الأمثلة على ذلك:
عندما لا علاقة لمعالجة البيانات المفقودة الفرز
الصور المجال العام من Pixabay
عادة، عند التعامل مع البيانات المفقودة، لا يهم، لذلك، يمكن أن تستخدم من أجل القيمة إلى استبدال القيم المفقودة يتم تحديدها استنادا إلى البيانات المتاحة الشاملة. في هذه الحالة، هل عادة استخدام القيمة الأمثل تخمين (أي متوسط أو ما يعادلها البيانات المتاحة) استبدال قيمة عداد المفقودين.
دعونا نلقي نظرة سريعة على ماذا يجب أن تكون حذرا باستخدام هذا الأسلوب. افترض أنك شملهم الاستطلاع 1000 الفتيان والفتيات 1000 الوزن. لسوء الحظ، في عملية جمع البيانات، يتم فقدان بعض البيانات.
# الواردات
استيراد نمباي كما أرستها
# عينة 1000 الفتيان والفتيات 1000
الفتيان = np.random.normal (70،5،1000)
الفتيات = np.random.normal (50،3،1000)
# وللأسف، فإن المتدرب تشغيل المسح على الفتيات حصلت مشتتا وخسر 100 عينة
لأنني في مجموعة (100):
الفتيات = Np.nan
# بناء DataFrame
الفتيان = pd.DataFrame (بنين، والأعمدة = )
الأولاد = 'صبي'
الفتيات = pd.DataFrame (الفتيات والأعمدة = )
الفتيات = 'فتاة'
مدافع = pd.concat ( ، المحور = 0)
مدافع = مدافع . astype (تعويم)
مجموعات فرعية
إذا كنت لا تهتم حقا ما يملأ القيم المفقودة، يمكننا ملء القيمة المفقودة مع متوسط العينة بأكملها. ومع ذلك، يبدو أن نتائج غريبة. الفتيات KDE واثنين من الحدب. يمكن للمرء أن يستنتج أن هناك مجموعة فرعية من أثقل الفتيات في العينة. لأننا قبل بنيت التوزيع، لذلك نحن نعلم أن الأمر ليس كذلك. ولكن إذا كان هذا هو البيانات الحقيقية، ونحن قد رسم استنتاجات خاطئة.
الفتيان والفتيات الوزن KDE، فإننا نعني استبدال البيانات المفقودة (تحت مع رمز) مع عينة
# مؤامرة CODE:
sns.set_style ( 'الأبيض')
التين، الفأس = plt.subplots (figsize = (16، 7))
متوسط = مدافع . يعني
sns.distplot (
مدافع . Fillna (الوسط)،
كيدي = صحيح،
اصمت = خطأ،
الفأس = الفأس،
= التسمية 'الفتيات'
)
sns.distplot (
مدافع ،
كيدي = صحيح،
اصمت = خطأ،
الفأس = الفأس،
= تسمية "الأولاد"
)
plt.title ( 'نواة الكثافة تقدير الوزن للفتيان والفتيات)
sns.despine
متوسط التعبئة في القيم المفقودة للفريق
في هذه الحالة، وجاءت الباندا نقل وظيفة في متناول اليدين، فإنه يستخدم التحول يوفر طريقة بسيطة لحل هذه المشكلة:
مدافع = df.groupby ( "الجندر") . تحويل (
امدا GRP: grp.fillna (np.mean (GRP))
)
يتم تشغيل KDE قيمة الوزن من الأمر واستخلاص ينتج عن ذلك من الأوزان ملء:
الفتيان والفتيات الأوزان الثقيلة KDE، فإننا استبدال القيم المفقودة (مع رمز أدناه) مع متوسط مجموعة
# مؤامرة CODE:
sns.set_style ( 'الأبيض')
التين، الفأس = plt.subplots (figsize = (16، 7))
sns.distplot (
مدافع ،
كيدي = صحيح،
اصمت = خطأ،
الفأس = الفأس،
= التسمية 'الفتيات'
)
sns.distplot (
مدافع ،
كيدي = صحيح،
اصمت = خطأ،
الفأس = الفأس،
= تسمية "الأولاد"
)
plt.title ( 'نواة الكثافة تقدير الوزن للفتيان والفتيات)
sns.despine
مجموعات فرعية متعددة
دعونا نستخدم المثال السابق، ولكن هذه المرة، تنقسم نحن بيانات إضافية إلى الفئات العمرية. دعونا خلق بعض البيانات المحاكاة:
# المعلمتين لتوزيع الوزن (نفسه، الأمراض المنقولة جنسيا)
param_map = {
'بوي': {
'
'
'20 + ":( 70،5)،
}،
'فتاة': {
'
'
'20 + ":( 50،3)،
}
}
# توليد 10K السجلات
مدافع = pd.DataFrame ({
'الجنس': np.random.choice (، 10000)،
"Age_cohort ': np.random.choice (