تخلص من كابوس تنظيف البيانات بهذه السكريبتات الذكية
لماذا نهدر الوقت في تنظيف البيانات يدويًا؟
كم ساعة تقضيها كل أسبوع في تصحيح تواريخ، إزالة تكرارات، أو معالجة قيم ناقصة؟ إذا كنت مثل معظم المحللين والمبرمجين، الإجابة غالبًا: كثير جدًا!
الحقيقة المؤلمة: تنظيف البيانات يمثل 80% من وقت العمل التحليلي، وهذا هدر غير مقبول في عصر الأتمتة.
الحل: بايثون إلى الإنقاذ
جمعت لكم 5 سكريبتات عملية جربتها شخصيًا ووفرت عليَّ ساعات من العمل الممل. كل سكريبت لا يتعدى 10-15 سطر، وسهل التعديل ليناسب بياناتك.
السكريبت الأول: منظم التواريخ الفوضوية
import pandas as pd
from datetime import datetime
def clean_dates(df, date_column):
"""يحول أي شكل تاريخ إلى صيغة موحدة"""
date_formats = ['%d/%m/%Y', '%Y-%m-%d', '%m-%d-%Y', '%d-%m-%Y']
for fmt in date_formats:
try:
df[date_column] = pd.to_datetime(df[date_column], format=fmt)
break
except ValueError:
continue
return df
متى تستخدمه: عندما يكون لديك بيانات من مصادر مختلفة بتنسيقات تاريخ متعددة.
السكريبت الثاني: كاشف التكرارات الذكي
def smart_deduplicate(df, key_columns):
"""يزيل التكرارات بناءً على أعمدة محددة"""
return df.drop_duplicates(subset=key_columns, keep='first')
الميزة: تقرر بنفسك أي الأعمدة تعتبر مفتاحًا للتكرار، مش مجرد الصف الكامل.
السكريبت الثالث: معالج القيم الناقصة
def handle_missing_values(df, strategy='mean'):
"""يعالج القيم الناقصة بطريقة ذكية"""
numeric_cols = df.select_dtypes(include=['number']).columns
for col in numeric_cols:
if strategy == 'mean':
df[col].fillna(df[col].mean(), inplace=True)
elif strategy == 'median':
df[col].fillna(df[col].median(), inplace=True)
return df
السكريبت الرابع: موحد النصوص
def standardize_text(df, text_columns):
"""يوحد تنسيق النصوص والحروف"""
for col in text_columns:
df[col] = df[col].str.strip().str.title()
return df
مفيد جدًا: لتنظيم أسماء العملاء، المدن، أو أي بيانات نصية.
السكريبت الخامس: كاشف القيم الشاذة
def detect_outliers(df, column):
"""يكتشف القيم الشاذة باستخدام قاعدة IQR"""
Q1 = df[column].quantile(0.25)
Q3 = df[column].quantile(0.75)
IQR = Q3 - Q1
lower_bound = Q1 - 1.5 * IQR
upper_bound = Q3 + 1.5 * IQR
outliers = df[(df[column] < lower_bound) | (df[column] > upper_bound)]
return outliers
الخلاصة: لماذا هذه السكريبتات تغير قواعد اللعبة؟
١. توفير الوقت: من ساعات إلى دقائق
٢. تقليل الأخطاء: لا وجود للخطأ البشري
٣. إمكانية التكرار: تشغيل نفس العملية على أي dataset
٤. القابلية للتطوير: تصلح لملايين الصفوف
جرب بنفسك!
ابدأ بأبسط سكريبت يناسب مشكلتك، وشاهد كيف تتحسن إنتاجيتك. الأسئلة؟ اطرحها في التعليقات 👇
📊 للبيزنس: تحليل القيمة التجارية على Blog
💬 شاركنا رأيك على Facebook
Top comments (0)