ممتاز! سنستمر في تعلم المزيد من العمليات المتقدمة في Pandas والتي ستساعدك في التعامل مع البيانات بشكل أكثر فعالية ودقة. في هذا الدرس، سنستكشف موضوعات مثل التعامل مع البيانات النصية، تحليل البيانات الإحصائية، ومعالجة البيانات المتسلسلة.
الدرس الرابع: العمليات المتقدمة والتحليل الإحصائي في Pandas
1. التعامل مع البيانات النصية
البيانات النصية شائعة في معظم مجموعات البيانات، وغالبًا ما تحتاج إلى تنظيفها أو استخراج معلومات منها. Pandas توفر دوال مفيدة للتعامل مع النصوص:
بالعربية:
import pandas as pd
# إنشاء DataFrame بسيط
data = {
'الاسم': ['أحمد علي', 'سارة محمد', 'محمد عبد الله', 'ليلى حسن'],
'البريد الإلكتروني': ['ahmed@example.com', 'sara@example.net', 'mohamed@example.org', 'layla@example.com']
}
df = pd.DataFrame(data)
# استخراج الاسم الأول
df['الاسم الأول'] = df['الاسم'].apply(lambda x: x.split()[0])
print(df)
# تحويل النص إلى أحرف كبيرة
df['البريد الإلكتروني'] = df['البريد الإلكتروني'].str.upper()
print(df)
بالإنجليزية:
import pandas as pd
# Creating a simple DataFrame
data = {
'Name': ['Ahmed Ali', 'Sara Mohamed', 'Mohamed Abdullah', 'Layla Hassan'],
'Email': ['ahmed@example.com', 'sara@example.net', 'mohamed@example.org', 'layla@example.com']
}
df = pd.DataFrame(data)
# Extracting the first name
df['First Name'] = df['Name'].apply(lambda x: x.split()[0])
print(df)
# Converting text to uppercase
df['Email'] = df['Email'].str.upper()
print(df)
2. التحليل الإحصائي
Pandas توفر العديد من الدوال المفيدة للتحليل الإحصائي السريع للبيانات. دعونا نلقي نظرة على بعض الأمثلة:
بالعربية:
import pandas as pd
# إنشاء DataFrame بسيط
data = {
'العمر': [23, 25, 22, 20, 27, 30, 24, 26],
'الراتب': [5000, 6000, 5500, 5200, 7000, 7100, 4800, 6300]
}
df = pd.DataFrame(data)
# حساب المتوسط الحسابي
average_age = df['العمر'].mean()
average_salary = df['الراتب'].mean()
print("المتوسط الحسابي للعمر:", average_age)
print("المتوسط الحسابي للراتب:", average_salary)
# حساب الانحراف المعياري
std_age = df['العمر'].std()
std_salary = df['الراتب'].std()
print("الانحراف المعياري للعمر:", std_age)
print("الانحراف المعياري للراتب:", std_salary)
بالإنجليزية:
import pandas as pd
# Creating a simple DataFrame
data = {
'Age': [23, 25, 22, 20, 27, 30, 24, 26],
'Salary': [5000, 6000, 5500, 5200, 7000, 7100, 4800, 6300]
}
df = pd.DataFrame(data)
# Calculating the mean
average_age = df['Age'].mean()
average_salary = df['Salary'].mean()
print("Average Age:", average_age)
print("Average Salary:", average_salary)
# Calculating the standard deviation
std_age = df['Age'].std()
std_salary = df['Salary'].std()
print("Standard Deviation of Age:", std_age)
print("Standard Deviation of Salary:", std_salary)
3. التعامل مع البيانات المتسلسلة (Time Series Data)
البيانات المتسلسلة الزمنية تستخدم في العديد من المجالات مثل التحليل المالي والاقتصادي. Pandas تجعل التعامل مع هذه البيانات سهلاً:
بالعربية:
import pandas as pd
import numpy as np
# إنشاء تسلسل زمني يومي
dates = pd.date_range('2023-01-01', periods=10)
data = {
'التاريخ': dates,
'القيمة': np.random.randint(1, 100, size=10)
}
df = pd.DataFrame(data)
df.set_index('التاريخ', inplace=True)
print(df)
# حساب المتوسط المتحرك (Moving Average)
df['متوسط متحرك'] = df['القيمة'].rolling(window=3).mean()
print(df)
بالإنجليزية:
import pandas as pd
import numpy as np
# Creating a daily time series
dates = pd.date_range('2023-01-01', periods=10)
data = {
'Date': dates,
'Value': np.random.randint(1, 100, size=10)
}
df = pd.DataFrame(data)
df.set_index('Date', inplace=True)
print(df)
# Calculating Moving Average
df['Moving Average'] = df['Value'].rolling(window=3).mean()
print(df)
4. معالجة البيانات المفقودة (Missing Data)
البيانات المفقودة شائعة في مجموعات البيانات، ومن المهم أن تعرف كيفية التعامل معها. يمكنك استخدام fillna()
أو dropna()
في Pandas:
بالعربية:
import pandas as pd
import numpy as np
# إنشاء DataFrame مع بعض القيم المفقودة
data = {
'الاسم': ['أحمد', 'سارة', np.nan, 'ليلى'],
'العمر': [23, 25, np.nan, 20]
}
df = pd.DataFrame(data)
print("البيانات الأصلية:")
print(df)
# ملء القيم المفقودة
df['العمر'].fillna(df['العمر'].mean(), inplace=True)
print("\nبعد ملء القيم المفقودة:")
print(df)
# حذف الصفوف التي تحتوي على قيم مفقودة
df = df.dropna()
print("\nبعد حذف الصفوف المفقودة:")
print(df)
بالإنجليزية:
import pandas as pd
import numpy as np
# Creating a DataFrame with some missing values
data = {
'Name': ['Ahmed', 'Sara', np.nan, 'Layla'],
'Age': [23, 25, np.nan, 20]
}
df = pd.DataFrame(data)
print("Original Data:")
print(df)
# Filling missing values
df['Age'].fillna(df['Age'].mean(), inplace=True)
print("\nAfter Filling Missing Values:")
print(df)
# Dropping rows with missing values
df = df.dropna()
print("\nAfter Dropping Rows with Missing Values:")
print(df)
5. استخراج المعلومات الإحصائية
يمكنك استخراج مجموعة من المعلومات الإحصائية عن DataFrame باستخدام دالة describe()
:
بالعربية:
import pandas as pd
# إنشاء DataFrame بسيط
data = {
'العمر': [23, 25, 22, 20, 27, 30, 24, 26],
'الراتب': [5000, 6000, 5500, 5200, 7000, 7100, 4800, 6300]
}
df = pd.DataFrame(data)
# استخراج المعلومات الإحصائية
print(df.describe())
بالإنجليزية:
import pandas as pd
# Creating a simple DataFrame
data = {
'Age': [23, 25, 22, 20, 27, 30, 24, 26],
'Salary': [5000, 6000, 5500, 5200, 7000, 7100, 4800, 6300]
}
df = pd.DataFrame(data)
# Extracting statistical information
print(df.describe())
التحديات العملية
التحدي 1: تنظيف البيانات النصية
- لديك DataFrame يحتوي على عمود للأسماء (بصيغة “الاسم الأول الاسم الأخير”). قم بإنشاء عمود جديد يحتوي فقط على الأسماء الأولى.
- قم بتحويل كل النصوص في عمود البريد الإلكتروني إلى أحرف صغيرة.
التحدي 2: التحليل الإحصائي
- لديك DataFrame يحتوي على أعمار ورواتب الموظفين. احسب المتوسط الحسابي والانحراف المعياري لكل من الأعمار والرواتب.
- استخدم دالة
describe()
للحصول على ملخص إحصائي لكامل DataFrame.
التحدي 3: التعامل مع البيانات المفقودة
- لديك DataFrame يحتوي على بعض القيم المفقودة. قم بملء القيم المفقودة في الأعمار باستخدام متوسط الأعمار.
- احذف الصفوف التي تحتوي على أي قيمة مفقودة.
التحدي 4: معالجة البيانات المتسلسلة الزمنية
- لديك DataFrame يحتوي على بيانات تسلسلية يومية (تاريخ وقيمة). قم بحساب المتوسط المتحرك لقيم الفترة (7 أيام).
- أنشئ عمود جديد يحتوي على فرق القيم اليومية عن القيمة السابقة.
تهانينا على التقدم المستمر! هذه المواضيع تعطيك نظرة شاملة على كيفية
التعامل مع وتحليل البيانات باستخدام Pandas. استمر في التدرب والتجربة مع Pandas، وستصبح أكثر إلمامًا وقوة في استخدام هذه المكتبة. إذا كان لديك أي أسئلة أو ترغب في تعلم موضوعات أخرى، فلا تتردد في طرحها!