Data Science

تحليل البيانات بـ Python - دليل شامل للمبتدئين

3 ديسمبر 2024 14 دقيقة قراءة
تحليل البيانات

لماذا تحليل البيانات؟

نعيش في عصر البيانات! كل يوم يتم إنشاء 2.5 كوينتليون بايت من البيانات. من يعرف كيف يحللها يمتلك قوة عظيمة. تحليل البيانات يساعدك على اتخاذ قرارات مبنية على حقائق، اكتشاف أنماط خفية، والتنبؤ بالمستقبل!

الرواتب: محلل البيانات المبتدئ يبدأ من $60,000 سنوياً، والخبراء يصلون لأكثر من $150,000!

الأدوات الأساسية

1. Python - اللغة الأمثل

بسيطة، قوية، ومكتبات ضخمة للبيانات

2. Pandas - معالجة البيانات

مكتبة سحرية لقراءة، تنظيف، وتحليل البيانات الجدولية

3. NumPy - العمليات الرياضية

حسابات رياضية سريعة جداً على المصفوفات

4. Matplotlib & Seaborn - التصور

رسم charts وgraphs احترافية

التثبيت والبداية

# تثبيت المكتبات
pip install pandas numpy matplotlib seaborn jupyter

# استيراد المكتبات
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns

Pandas - البداية

قراءة البيانات:

# من CSV
df = pd.read_csv('data.csv')

# من Excel
df = pd.read_excel('data.xlsx')

# من JSON
df = pd.read_json('data.json')

# إنشاء DataFrame يدوياً
data = {
    'الاسم': ['أحمد', 'فاطمة', 'محمد', 'سارة'],
    'العمر': [25, 30, 22, 28],
    'المدينة': ['القاهرة', 'دبي', 'الرياض', 'بيروت'],
    'الراتب': [5000, 7000, 4500, 6000]
}
df = pd.DataFrame(data)

print(df)

استكشاف البيانات:

# عرض أول 5 صفوف
df.head()

# عرض آخر 5 صفوف
df.tail()

# معلومات عامة
df.info()

# إحصائيات وصفية
df.describe()

# الشكل (عدد الصفوف والأعمدة)
df.shape

# أسماء الأعمدة
df.columns

# أنواع البيانات
df.dtypes

تنظيف البيانات

البيانات الحقيقية دائماً فوضوية! 80% من وقت التحليل يُقضى في التنظيف:

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

# اكتشاف القيم المفقودة
df.isnull().sum()

# حذف الصفوف التي فيها قيم مفقودة
df.dropna()

# ملء القيم المفقودة بقيمة معينة
df.fillna(0)

# ملء بالمتوسط
df['العمر'].fillna(df['العمر'].mean())

# ملء بالقيمة الأكثر تكراراً
df['المدينة'].fillna(df['المدينة'].mode()[0])

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

# التحقق من وجود تكرار
df.duplicated().sum()

# حذف الصفوف المكررة
df.drop_duplicates()

تصفية واختيار البيانات

# اختيار عمود واحد
df['الاسم']

# اختيار عدة أعمدة
df[['الاسم', 'العمر']]

# تصفية بشرط
df[df['العمر'] > 25]

# شروط متعددة
df[(df['العمر'] > 25) & (df['الراتب'] > 5000)]

# استخدام loc (بالاسم)
df.loc[df['المدينة'] == 'القاهرة', ['الاسم', 'الراتب']]

# استخدام iloc (بالفهرس)
df.iloc[0:3, 0:2]  # أول 3 صفوف، أول عمودين

التحليل الإحصائي

# المتوسط
df['الراتب'].mean()

# الوسيط
df['الراتب'].median()

# القيمة الأكثر تكراراً
df['المدينة'].mode()[0]

# الانحراف المعياري
df['الراتب'].std()

# أقل وأكبر قيمة
df['العمر'].min()
df['العمر'].max()

# التكرارات
df['المدينة'].value_counts()

# التجميع (Group By)
df.groupby('المدينة')['الراتب'].mean()

# تجميع متعدد
df.groupby('المدينة').agg({
    'الراتب': ['mean', 'min', 'max'],
    'العمر': 'mean'
})

التصور البياني

Matplotlib - الأساسيات:

# رسم خط
plt.figure(figsize=(10, 6))
plt.plot(df['الاسم'], df['الراتب'], marker='o')
plt.xlabel('الاسم')
plt.ylabel('الراتب')
plt.title('رواتب الموظفين')
plt.xticks(rotation=45)
plt.show()

# رسم أعمدة (Bar Chart)
plt.bar(df['الاسم'], df['الراتب'], color='skyblue')
plt.show()

# Histogram
plt.hist(df['العمر'], bins=10, edgecolor='black')
plt.show()

# Pie Chart
df['المدينة'].value_counts().plot(kind='pie', autopct='%1.1f%%')
plt.show()

Seaborn - متقدم وجميل:

# Scatter Plot
sns.scatterplot(data=df, x='العمر', y='الراتب', hue='المدينة')
plt.show()

# Box Plot
sns.boxplot(data=df, x='المدينة', y='الراتب')
plt.show()

# Heatmap (الارتباطات)
correlation = df[['العمر', 'الراتب']].corr()
sns.heatmap(correlation, annot=True, cmap='coolwarm')
plt.show()

مثال تطبيقي كامل

تحليل بيانات مبيعات متجر إلكتروني:

import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns

# 1. قراءة البيانات
df = pd.read_csv('sales_data.csv')

# 2. استكشاف أولي
print(df.head())
print(df.info())
print(df.describe())

# 3. تنظيف البيانات
# حذف القيم المفقودة
df.dropna(inplace=True)

# تحويل التاريخ
df['التاريخ'] = pd.to_datetime(df['التاريخ'])

# 4. تحليل المبيعات
total_sales = df['السعر'].sum()
print(f'إجمالي المبيعات: ${total_sales:,.2f}')

# أكثر المنتجات مبيعاً
top_products = df.groupby('المنتج')['الكمية'].sum().sort_values(ascending=False).head(10)
print(top_products)

# المبيعات الشهرية
df['الشهر'] = df['التاريخ'].dt.month
monthly_sales = df.groupby('الشهر')['السعر'].sum()

# 5. التصور
plt.figure(figsize=(12, 6))
monthly_sales.plot(kind='bar', color='green')
plt.title('المبيعات الشهرية')
plt.xlabel('الشهر')
plt.ylabel('المبيعات ($)')
plt.xticks(rotation=0)
plt.show()

# 6. حفظ النتائج
df.to_csv('cleaned_sales_data.csv', index=False)
top_products.to_excel('top_products.xlsx')

نصائح للنجاح

  • ابدأ صغيراً: استخدم datasets بسيطة (Kaggle للمبتدئين)
  • افهم البيانات أولاً: لا تقفز للتحليل مباشرة
  • نظّف جيداً: القمامة داخلاً = قمامة خارجاً
  • اطرح أسئلة: ماذا تريد أن تعرف من البيانات؟
  • صوّر دائماً: صورة واحدة = ألف رقم
  • وثّق عملك: Jupyter Notebooks مثالي

الخلاصة

تحليل البيانات مهارة المستقبل! Python مع Pandas و NumPy يجعلان التحليل سهلاً وممتعاً. ابدأ بمشروع صغير، حلل بيانات تهمك (رياضة، ألعاب، طقس)، وتدرج للمشاريع الأكبر. في غضون 3 شهور من الممارسة، ستصبح محلل بيانات محترف!

شارك هذا المقال مع أصدقائك