Pandas

15.3 Pandas

أهداف التعلم

في نهاية هذا القسم، ينبغي أن تكون قادرًا على:

  • وصف مكتبة Pandas.
  • إنشاء كائن إطار بيانات وكائن سلسلة.
  • اختيار دوال Pandas المناسبة للحصول على رؤى من البيانات غير المتجانسة.

مكتبة Pandas

Pandas مكتبة بايثون مفتوحة المصدر تُستخدم لتنظيف البيانات ومعالجتها وتحليلها. توفر Pandas هياكل بيانات وأدوات تحليل بيانات لتحليل البيانات المهيكلة بكفاءة. اسم "Pandas" مشتق من مصطلح "بيانات اللوحة" (panel data)، والذي يشير إلى مجموعات البيانات المهيكلة متعددة الأبعاد. تشمل الميزات الرئيسية لـ Pandas ما يلي:

  • هياكل البيانات: تطبق Pandas هيكلين رئيسيين للبيانات:
    • سلسلة: السلسلة مصفوفة أحادية الأبعاد مُعنونة.
    • إطار بيانات: إطار البيانات هيكل بيانات ثنائي الأبعاد مُعنون يتكون من أعمدة وصفوف. يمكن اعتبار إطار البيانات هيكل بيانات يشبه جدول البيانات، حيث يمثل كل عمود سلسلة. إطار البيانات هيكل بيانات غير متجانس، حيث يمكن أن يكون لكل عمود نوع بيانات مختلف.
  • وظائف معالجة البيانات: توفر Pandas وظائف متنوعة لمعالجة البيانات، مثل اختيار البيانات وتصفيتها وتقطيعها وترتيبها ودمجها وربطها وإعادة تشكيلها.
  • التكامل مع المكتبات الأخرى: تتكامل Pandas بشكل جيد مع مكتبات بايثون الأخرى، مثل NumPy. تسمح قدرة التكامل بتبادل البيانات بين أدوات تحليل البيانات وتصويرها المختلفة.

الاسم المستعار التقليدي لاستيراد Pandas هو pd. بمعنى آخر، تُستورد Pandas كـ import pandas as pd. تُعرض أمثلة لكائنات إطار البيانات والسلسلة أدناه.

مثال على إطار البيانات مثال على السلسلة
Name Age City
0 Emma 15 Dubai
1 Gireeja 28 London
2 Sophia 22 San Jose
0 Emma
1 Gireeja
2 Sophia
dtype: object
جدول 15.1

إدخال البيانات وإخراجها

يمكن إنشاء إطار بيانات من قاموس أو قائمة أو مصفوفة NumPy أو ملف قيم مفصولة بفواصل (CSV). يمكن تحديد أسماء الأعمدة وأنواع بيانات الأعمدة عند إنشاء إطار البيانات.

الوصف مثال المخرجات الشرح
إطار بيانات من قاموس
import pandas as pd

# إنشاء قاموس بالأعمدة
data = {
  "Name": ["Emma", "Gireeja", "Sophia"],
  "Age": [15, 28, 22],
  "City": ["Dubai", "London", "San Jose"]
}

# إنشاء إطار بيانات من القاموس
df = pd.DataFrame(data)

# عرض إطار البيانات
df
Name Age City
0 Emma 15 Dubai
1 Gireeja 28 London
2 Sophia 22 San Jose

تأخذ الدالّة pd.DataFrame() قاموسًا وتحوّله إلى إطار بيانات. ستكون مفاتيح القاموس هي تسميات الأعمدة، وتُخزَّن القيم في الأعمدة المعنية.

إطار بيانات من قائمة
import pandas as pd

# إنشاء قائمة بالصفوف
data = [
  ["Emma", 15, "Dubai"],
  ["Gireeja", 28, "London"],
  ["Sophia", 22, "San Jose"]
]

# تعريف تسميات الأعمدة
columns = ["Name", "Age", "City"]

# إنشاء إطار بيانات من قائمة باستخدام تسميات الأعمدة
df = pd.DataFrame(data, columns=columns)

# عرض إطار البيانات
df
Name Age City
0 Emma 15 Dubai
1 Gireeja 28 London
2 Sophia 22 San Jose

تأخذ الدالّة pd.DataFrame() قائمة تحتوي على السجلات في صفوف مختلفة من إطار البيانات، بالإضافة إلى قائمة بتسميات الأعمدة، وتُنشئ إطار بيانات بالصفوف وتسميات الأعمدة المعطاة.

إطار بيانات من مصفوفة NumPy
import numpy as np
import pandas as pd

# إنشاء مصفوفة NumPy
data = np.array([
  [1, 0, 0],
  [0, 1, 0],
  [2, 3, 4]
])

# تعريف تسميات الأعمدة
columns = ["A", "B", "C"]

# إنشاء إطار بيانات من مصفوفة NumPy
df = pd.DataFrame(data, columns=columns)

# عرض إطار البيانات
df
A B C
0 1 0 0
1 0 1 0
2 2 3 4

تُمرَّر مصفوفة NumPy، بالإضافة إلى تسميات الأعمدة، إلى الدالّة pd.DataFrame() لإنشاء كائن إطار بيانات.

إطار بيانات من ملف CSV
import pandas as pd

# قراءة ملف CSV إلى إطار بيانات
df = pd.read_csv("data.csv")

# عرض إطار البيانات
df
يُطبع محتوى ملف CSV بتنسيق جدولي.

تقرأ الدالّة pd.read_csv() ملف CSV إلى إطار بيانات وتُنظّم المحتوى بتنسيق جدولي.

إطار بيانات من ملف Excel
import pandas as pd

# قراءة ملف Excel إلى إطار بيانات
df = pd.read_excel("data.xlsx")

# عرض إطار البيانات
df
يُطبع محتوى ملف Excel بتنسيق جدولي.

تقرأ الدالّة pd.read_excel() ملف Excel إلى إطار بيانات وتُنظّم المحتوى بتنسيق جدولي.

جدول 15.2 إنشاء إطار البيانات.

مفاهيم تطبيقية

أساسيات Pandas

1.
أي مما يلي هو هيكل بيانات Pandas؟
  1. سلسلة
  2. قاموس
  3. قائمة
2.
يمكن اعتبار كائن إطار البيانات مجموعة من كائنات السلسلة.
  1. صحيح
  2. خطأ
3.
ما هي فوائد Pandas مقارنة بـ NumPy؟
  1. توفر Pandas التكامل مع المكتبات الأخرى.
  2. تدعم Pandas البيانات غير المتجانسة بينما تدعم NumPy البيانات الرقمية المتجانسة.
  3. تدعم Pandas هياكل البيانات أحادية وثنائية الأبعاد.

Pandas لمعالجة البيانات وتحليلها

توفر مكتبة Pandas دوال وتقنيات لاستكشاف البيانات ومعالجتها والحصول على رؤى منها. تُوصَف دوال إطار البيانات الرئيسية المستخدمة لتحليل البيانات في الجدول التالي.

    import pandas as pd
    import numpy as np
    
    # إنشاء إطار بيانات نموذجي
    days = {
      'Season': ['Summer', 'Summer', 'Fall', 'Winter', 'Fall', 'Winter'],
      'Month': ['July', 'June', 'September', 'January', 'October', 'February'],
      'Month-day': [1, 12, 3, 7, 20, 28],
      'Year': [2000, 1990, 2020, 1998, 2001, 2022]
    }
    df = pd.DataFrame(days)
Season Month Month-day Year
0 Summer July 1 2000
1 Summer June 12 1990
2 Fall September 3 2020
3 Winter January 7 1998
4 Fall October 20 2001
5 Winter February 28 2022
جدول 15.3
اسم الدالّة الشرح مثال المخرجات

head(n)

تُرجع أول n صفوف. إذا لم تُمرَّر قيمة، تظهر أول 5 صفوف افتراضيًا.

df.head(4)
Season Month Month-day Year
0 Summer July 1 2000
1 Summer June 12 1990
2 Fall September 3 2020
3 Winter January 7 1998

tail(n)

تُرجع آخر n صفوف. إذا لم تُمرَّر قيمة، تظهر آخر 5 صفوف افتراضيًا.

df.tail(3)
Season Month Month-day Year
3 Winter January 7 1998
4 Fall October 20 2001
5 Winter February 28 2022

info()

توفر ملخصًا لإطار البيانات، بما في ذلك أسماء الأعمدة وأنواع البيانات وعدد القيم غير الفارغة. تُرجع الدالّة أيضًا استخدام ذاكرة إطار البيانات.
df.info()
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 6 entries, 0 to 5
Data columns (total 4 columns):
 #    Column        Non-Null Count    Dtype
---   ------        --------------    -----
 0    Season        6 non-null        object
 1    Month         6 non-null        object
 2    Month-day     6 non-null        int64
 3    Year          6 non-null        int64
dtypes: int64(2), object(2)
memory usage: 320.0+ bytes

describe()

تُنشئ عدد الأعمدة، والمتوسط، والانحراف المعياري، والحد الأدنى، والحد الأقصى، والربيعيات.
df.describe()
Month-day Year
count 6.000000 6.000000
mean 11.833333 2005.166667
std 10.457852 12.875040
min 1.000000 1990.000000
25% 4.000000 1998.500000
50% 9.500000 2000.500000
75% 18.000000 2015.250000
max 28.000000 2022.000000

value_counts()

تحسب تكرارات القيم الفريدة في عمود عند تمرير عمود كوسيط، وتُقدّمها بترتيب تنازلي.
df.value_counts \('Season')
Season
Fall  2
Summer  2
Winter  2
dtype: int64

unique()

تُرجع مصفوفة من القيم الفريدة في عمود عند استدعائها على عمود.
df['Season'] \.unique()
​​['Summer' 'Fall' 'Winter']
جدول 15.4 دوال إطار البيانات.

مفاهيم تطبيقية

عمليات إطار البيانات

4.
أي مما يلي يُرجع أول خمسة صفوف من إطار بيانات؟
  1. df.head()
  2. df.head(5)
  3. كلاهما
5.
ماذا تفعل الدالّة unique() في إطار بيانات عند تطبيقها على عمود؟
  1. تُرجع عدد الأعمدة الفريدة
  2. تُرجع عدد القيم الفريدة في العمود المعطى
  3. تُرجع القيم الفريدة في العمود المعطى
6.
أي دالّة تُنشئ معلومات إحصائية للأعمدة ذات أنواع البيانات الرقمية؟
  1. describe()
  2. info()
  3. unique()

استكشاف إضافي

يرجى الرجوع إلى دليل مستخدم Pandas لمزيد من المعلومات حول مكتبة Pandas.

ممارسة البرمجة باستخدام Google

استخدم مستند بيئة غوغل كولاب أدناه لممارسة وظائف Pandas لاستخلاص رؤى من مجموعة بيانات.

مستند بيئة غوغل كولاب