تنظيف البيانات بـ Python Pandas: دليل عملي
Python
٥ مايو ٢٠٢٦
4 دقائق قراءة

تنظيف البيانات بـ Python Pandas: دليل عملي

80% من وقت محلل البيانات يُقضى في تنظيف البيانات. إليك كيفية فعل ذلك بكفاءة مع Pandas — يغطي أكثر المشكلات شيوعاً في العالم الحقيقي.

Mohamed Abdelfattah

Mohamed Abdelfattah

مؤسس Knowlytics Hub

شارك:

تنظيف البيانات غير جذاب ويستغرق وقتاً طويلاً وضروري تماماً. تُظهر الدراسات باستمرار أن محترفي البيانات يقضون 60–80% من وقتهم في تنظيف البيانات وإعدادها قبل أن يبدأ أي تحليل. Pandas يجعل هذه العملية أسرع وقابلة للتكرار وقابلة للتدقيق.

محرر كود Python يعرض عمليات تنظيف البيانات بـ Pandas
محرر كود Python يعرض عمليات تنظيف البيانات بـ Pandas

ابدأ دائماً بهذه الأوامر الثلاثة

قبل لمس أي مجموعة بيانات، شغّل: df.info() — أنواع البيانات وعدد القيم غير الفارغة واستخدام الذاكرة df.describe() — ملخص إحصائي للأعمدة الرقمية df.isnull().sum() — عدد القيم المفقودة لكل عمود هذه الأوامر الثلاثة تكشف 90% من مشكلات جودة البيانات في أقل من 30 ثانية.

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

القيم المفقودة هي أكثر مشكلات جودة البيانات شيوعاً. استراتيجيتك تعتمد على السياق: df.dropna(subset=['critical_column']) — احذف الصفوف حيث عمود رئيسي فارغ df.fillna(0) — استبدل NULLs بالصفر df.fillna(df['column'].median()) — املأ بالوسيط df.fillna(method='ffill') — الملء للأمام (مفيد لبيانات السلاسل الزمنية)

تصور جودة البيانات يعرض خريطة حرارة للقيم المفقودة
تصور جودة البيانات يعرض خريطة حرارة للقيم المفقودة

إصلاح أنواع البيانات

أنواع البيانات الخاطئة تسبب أخطاء صامتة. أصلحها مبكراً: df['date'] = pd.to_datetime(df['date'], errors='coerce') df['revenue'] = pd.to_numeric(df['revenue'], errors='coerce') وسيطة errors='coerce' تحوّل القيم غير القابلة للتحليل إلى NaN بدلاً من التعطّل.

توحيد النص

النص غير المتسق يدمر دقة GROUP BY. 'Egypt' و'egypt' و'EGYPT' و' Egypt ' ستُعدّ أربع دول مختلفة: df['country'] = df['country'].str.strip().str.title() df['email'] = df['email'].str.strip().str.lower()

إزالة التكرارات

df.duplicated().sum() يُظهر كم صف مكرر موجود. df.drop_duplicates() يزيل التكرارات المطابقة. df.drop_duplicates(subset=['customer_id', 'order_date']) يزيل التكرارات بناءً على أعمدة محددة.

اكتشاف القيم الشاذة والتعامل معها

طريقة IQR تحدد القيم الشاذة الإحصائية دون افتراض توزيع:

Q1 = df['sales'].quantile(0.25)
Q3 = df['sales'].quantile(0.75)
IQR = Q3 - Q1
df_clean = df[(df['sales'] >= Q1 - 1.5*IQR) & (df['sales'] <= Q3 + 1.5*IQR)]

افحص القيم الشاذة دائماً قبل إزالتها — قد تكون أخطاء إدخال بيانات أو أحداث متطرفة حقيقية.

ابنِ خط أنابيب قابل لإعادة الاستخدام

المكسب الحقيقي في الكفاءة يأتي من تعبئة جميع خطوات التنظيف في دالة:

def clean_sales_data(df):
    df = df.copy()
    df.drop_duplicates(inplace=True)
    df['date'] = pd.to_datetime(df['date'], errors='coerce')
    df['revenue'] = pd.to_numeric(df['revenue'], errors='coerce')
    df['region'] = df['region'].str.strip().str.title()
    df.dropna(subset=['date', 'revenue'], inplace=True)
    return df

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

PythonPandasData CleaningIntermediate

مقالات ذات صلة

كيف تصبح محلل بيانات في 2025
Career

كيف تصبح محلل بيانات في 2025

اقرأ المزيد
Excel أم Power BI: أيهما تتعلم أولاً؟
Tools

Excel أم Power BI: أيهما تتعلم أولاً؟

اقرأ المزيد