Menu
CoddyTech
flag Ar iconالعربيةdown icon

القيم المفقودة

جزء من قسم البيانات والرسوم البيانية في رحلة Machine Learning على Coddy. الدرس 45 من 60.

تحتوي البيانات الحقيقية على فجوات: يتعطل مستشعر، أو يفوت أحدهم اختبارًا. يضع pandas العلامة NaN في كل خلية فارغة، وتعني «ليس رقمًا»:

جدول لأربعة طلاب واختبارين، يحتوي على ثلاث خلايا فارغة مُشار إليها بـ NaN: فات Ben الاختبار quiz1، وفات Cy وDee الاختبار quiz2. أدناه، عدد الخلايا الفارغة لكل عمود: 0 و1 و2

ترفض معظم النماذج القيم NaN، لذا احسب القيم المفقودة أولًا. تحدد .isna() كل قيمة منها على أنها True، وتحسبها .sum():

scores = pd.DataFrame({
    "name": ["Ana", "Ben", "Cy", "Dee"],
    "quiz1": [8, np.nan, 7, 9],  # np.nan قيمة مفقودة
    "quiz2": [6, 5, np.nan, np.nan],
})
print(scores.isna().sum())

يطبع هذا:

name     0
quiz1    1
quiz2    2
dtype: int64

ثم اختر: dropna() يحذف كل صف يحتوي على قيمة مفقودة؛ أما fillna(0) فيكتب 0 في كل منها. يُعيد كلاهما جدولًا جديدًا، لذا خزّنه.

تتجاهل الإحصاءات NaN: متوسط quiz1 هو 8.0، محسوبًا من درجاته الثلاث المعروفة.

challenge icon

التحدي

متوسط

فات جهاز تتبع اللياقة بعض القراءات في tracker.csv. قبل التدريب، تعرّف على كيفية تأثير كل طريقة لمعالجة القيم المفقودة في متوسط sleep. يقرأ البرنامج التمهيدي hours، وهي قيمة الملء.

  1. اطبع القيم المفقودة في كل عمود.
  2. اطبع متوسط النوم، مقربًا إلى منزلتين عشريتين، بثلاث طرق: مع تجاهل القيم المفقودة، وعلى الأيام التي لا توجد فيها قيمة مفقودة في أي عمود، ومع ملء القيم المفقودة بـ hours.

لجهاز تتبع آخر ومع 8:

day      0
steps    1
sleep    2
water    0
dtype: int64
Skipping gaps: 6.9
Complete days only: 7.0
Gaps filled with 8.0: 7.21

جرّب بنفسك

import pandas as pd

tracker = pd.read_csv("tracker.csv")
hours = float(input())

# اكتب الكود الخاص بك أدناه
quiz iconاختبر نفسك

يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.

جميع دروس البيانات والرسوم البيانية

تدرّب بنفسك: مترجم Python عبر الإنترنت