مكتبة Pandas (1): قراءة واستدعاء البيانات من ملفات CSV و Excel برمجياً
ماذا سنتعلم اليوم؟ اليوم سنتعلم كيفية قراءة واستدعاء البيانات من ملفات CSV و Excel باستخدام مكتبة Pandas في Python، وهي خطوة أساسية في أي مشروع لتحليل البيانات أو التعلم الآلي.
1. التحضير: استيراد مكتبة Pandas
قبل البدء، نحتاج إلى استيراد مكتبة Pandas. إذا لم تكن مثبتة لديك، يمكنك تثبيتها باستخدام pip install pandas openpyxl (openpyxl ضرورية لملفات Excel).
ملاحظة تقنية: الاصطلاح الشائع هو استيراد Pandas بالاسم المختصر pd لتسهيل الكتابة.
import pandas as pd # استيراد مكتبة Pandas وتسميتها اختصاراً pd
شرح الكود: هذا السطر يستورد مكتبة Pandas، وهي المكتبة الأساسية التي سنستخدمها لمعالجة البيانات.
2. قراءة البيانات من ملف CSV
ملفات CSV (Comma Separated Values) هي من أكثر التنسيقات شيوعاً لتخزين البيانات الجدولية. يمكننا قراءتها بسهولة باستخدام دالة read_csv().
# افتراض وجود ملف باسم 'data.csv' في نفس مجلد السكربت أو تحديد المسار الكامل
# مثال لملف CSV (قم بإنشائه يدوياً أو برمجياً):
# id,name,age,city
# 1,Alice,30,New York
# 2,Bob,24,London
# 3,Charlie,35,Paris
df_csv = pd.read_csv('data.csv') # قراءة ملف CSV وتحميله في DataFrame
print("البيانات من ملف CSV:") # طباعة عنوان توضيحي
print(df_csv.head()) # عرض أول 5 صفوف من DataFrame للتحقق
شرح الكود: قمنا بقراءة ملف data.csv إلى كائن DataFrame باسم df_csv. الدالة .head() مفيدة جداً لعرض لمحة سريعة عن البيانات بعد تحميلها.
3. قراءة البيانات من ملف Excel
ملفات Excel (مثل .xlsx) تستخدم أيضاً على نطاق واسع. يمكن لـ Pandas قراءتها باستخدام دالة read_excel(). هذه الدالة تتطلب عادةً تثبيت محرك مثل openpyxl.
# افتراض وجود ملف باسم 'data.xlsx' في نفس مجلد السكربت أو تحديد المسار الكامل
# مثال لملف Excel (ورقة افتراضية 'Sheet1'، قم بإنشائه يدوياً أو برمجياً):
# id,name,age,city
# 4,David,28,Berlin
# 5,Eve,22,Tokyo
df_excel = pd.read_excel('data.xlsx', sheet_name='Sheet1') # قراءة ملف Excel من ورقة 'Sheet1'
print("\nالبيانات من ملف Excel:") # طباعة عنوان توضيحي مع سطر جديد
print(df_excel.head()) # عرض أول 5 صفوف من DataFrame للتحقق
شرح الكود: هنا قرأنا ملف data.xlsx. لاحظ أننا حددنا sheet_name='Sheet1'، وهو اسم الورقة الافتراضي في Excel. إذا كان لديك ورقة باسم مختلف، ستحتاج لتغييره.
4. استكشاف البيانات بعد التحميل
بعد تحميل البيانات، من المهم دائماً التحقق من أبعادها وأنواع الأعمدة. دالتا .shape و .info() مفيدتان جداً لذلك.
print("\nمعلومات عن DataFrame من CSV:") # طباعة عنوان
print("الشكل (عدد الصفوف، عدد الأعمدة):", df_csv.shape) # عرض عدد الصفوف والأعمدة (مثال: (3, 4))
df_csv.info() # عرض معلومات مفصلة عن الأعمدة وأنواع البيانات
print("\nمعلومات عن DataFrame من Excel:") # طباعة عنوان
print("الشكل (عدد الصفوف، عدد الأعمدة):", df_excel.shape) # عرض عدد الصفوف والأعمدة (مثال: (2, 4))
df_excel.info() # عرض معلومات مفصلة عن الأعمدة وأنواع البيانات
شرح الكود: .shape يعطينا tuple يمثل (عدد الصفوف، عدد الأعمدة). .info() يعرض ملخصاً مفصلاً لـ DataFrame، بما في ذلك عدد الإدخالات غير الفارغة ونوع بيانات كل عمود، وهو أمر حيوي للتحقق من جودة البيانات.
الكود النهائي الكامل
هذا هو السكربت كاملاً، جاهز للنسخ والتشغيل بعد التأكد من وجود ملفات data.csv و data.xlsx في نفس المجلد.
import pandas as pd # استيراد مكتبة Pandas
# 1. قراءة البيانات من ملف CSV
# تأكد من وجود ملف 'data.csv' في نفس المسار
# محتويات ملف data.csv (مثال):
# id,name,age,city
# 1,Alice,30,New York
# 2,Bob,24,London
# 3,Charlie,35,Paris
df_csv = pd.read_csv('data.csv')
print("البيانات من ملف CSV:")
print(df_csv.head())
# 2. قراءة البيانات من ملف Excel
# تأكد من وجود ملف 'data.xlsx' في نفس المسار
# محتويات ملف data.xlsx (ورقة Sheet1، مثال):
# id,name,age,city
# 4,David,28,Berlin
# 5,Eve,22,Tokyo
df_excel = pd.read_excel('data.xlsx', sheet_name='Sheet1')
print("\nالبيانات من ملف Excel:")
print(df_excel.head())
# 3. استكشاف البيانات بعد التحميل
print("\nمعلومات عن DataFrame من CSV:")
print("الشكل (عدد الصفوف، عدد الأعمدة):", df_csv.shape)
df_csv.info()
print("\nمعلومات عن DataFrame من Excel:")
print("الشكل (عدد الصفوف، عدد الأعمدة):", df_excel.shape)
df_excel.info()
النتيجة المتوقعة
عند تشغيل السكربت، ستحصل على مخرجات مطبوعة على الشاشة تعرض أول خمسة صفوف من كل DataFrame (CSV و Excel)، متبوعاً بمعلومات تفصيلية عن كل DataFrame، بما في ذلك أبعادها وأنواع بيانات الأعمدة. ستكون النتيجة مشابهة لما يلي (اعتماداً على محتوى ملفاتك):
البيانات من ملف CSV:
id name age city
0 1 Alice 30 New York
1 2 Bob 24 London
2 3 Charlie 35 Paris
البيانات من ملف Excel:
id name age city
0 4 David 28 Berlin
1 5 Eve 22 Tokyo
معلومات عن DataFrame من CSV:
الشكل (عدد الصفوف، عدد الأعمدة): (3, 4)
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 3 entries, 0 to 2
Data columns (total 4 columns):
# Column Non-Null Count Dtype
--- ------ -------------- -----
0 id 3 non-null int64
1 name 3 non-null object
2 age 3 non-null int64
3 city 3 non-null object
dtypes: int64(2), object(2)
memory usage: 200.0+ bytes
معلومات عن DataFrame من Excel:
الشكل (عدد الصفوف، عدد الأعمدة): (2, 4)
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 2 entries, 0 to 1
Data columns (total 4 columns):
# Column Non-Null Count Dtype
--- ------ -------------- -----
0 id 2 non-null int64
1 name 2 non-null object
2 age 2 non-null int64
3 city 2 non-null object
dtypes: int64(2), object(2)
memory usage: 160.0+ bytes