تكامل Pandas وSQL
استخدام pd.read_sql() وdf.to_sql() ومحرك SQLAlchemy والاستعلام عن نتائج قاعدة البيانات مباشرةً في DataFrames.
تكامل Pandas وSQL درس مجاني في Learn AI with Python على CoddyKit. هذا هو الدرس 2 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Learn AI with Python، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Learn AI with Python 4 دروس في المجموع.
تلتقي Pandas مع SQL
لستم مضطرين إلى الاختيار بين SQL وpandas — فهما يعملان معًا. استعلموا عن قاعدة بيانات في DataFrame، وحوّلوا البيانات باستخدام pandas، ثم اكتبوا النتائج مرة أخرى.
أداة الربط هي SQLAlchemy، إلى جانب دالتي pandas read_sql وto_sql.
لماذا SQLAlchemy؟
يتحدث pandas إلى قواعد البيانات من خلال اتصال أو محرك SQLAlchemy. يجرّد المحرك نوع قاعدة البيانات، لذلك تعمل الشفرة نفسها مع SQLite وPostgreSQL وMySQL وغيرها — ما عليكم سوى تغيير عنوان URL.
إنشاء محرك
تأخذ create_engine عنوان URL للاتصال. ويحدّد مخطط عنوان URL برنامج تشغيل قاعدة البيانات.
from sqlalchemy import create_engine
engine = create_engine("sqlite:///ml.db")
# Postgres: create_engine("postgresql://user:pass@host:5432/db")قراءة جدول باستخدام pd.read_sql
تشغّل pd.read_sql استعلامًا أو تقرأ جدولًا، ثم تعيد DataFrame. مرّروا إليها سلسلة SQL والمحرك.
import pandas as pd
df = pd.read_sql("SELECT * FROM experiments", engine)
print(df.head())القراءة باستخدام استعلام مُصفّى
اتركوا لقاعدة البيانات مهمة التصفية والتجميع، ثم مرّروا نتيجة أصغر إلى pandas. فهذا أكثر كفاءة بكثير من تحميل كل شيء.
df = pd.read_sql(
"SELECT name, accuracy FROM experiments WHERE accuracy > 0.85 ORDER BY accuracy DESC",
engine,
)
print(df)الاستعلامات المعلَّمة بالمعاملات
مرّروا معاملات الاستعلام بأمان باستخدام الوسيط params بدلًا من تنسيق السلاسل النصية.
from sqlalchemy import text
df = pd.read_sql(
text("SELECT * FROM experiments WHERE name = :n"),
engine,
params={"n": "xgb"},
)كتابة DataFrame باستخدام df.to_sql
تكتب df.to_sql(table, engine) DataFrame في جدول قاعدة بيانات، وتنشئ الجدول من أنواع بيانات DataFrame إذا لزم الأمر.
df.to_sql("results", engine, index=False)الوسيط index
تكتب to_sql فهرس DataFrame كعمود افتراضيًا. لا تريدون ذلك عادةً — مرّروا index=False لتخطّيه.
df.to_sql("results", engine, index=False) # no extra index columnالوسيط if_exists
يتحكّم if_exists في السلوك عندما يكون الجدول موجودًا مسبقًا:
"fail"— إصدار خطأ (الإعداد الافتراضي)"replace"— حذف الجدول وإعادة إنشائه"append"— إضافة الصفوف إلى الجدول الموجود
df.to_sql("results", engine, if_exists="append", index=False)
# Use "replace" to overwrite, "fail" to be safeمسار عمل ذهابًا وإيابًا
مسار نموذجي: قراءة البيانات الخام من SQL، وتحويلها في pandas، ثم كتابة النتيجة المنظّفة مرة أخرى في جدول جديد.
import pandas as pd
from sqlalchemy import create_engine
engine = create_engine("sqlite:///ml.db")
raw = pd.read_sql("SELECT * FROM experiments", engine)
raw["accuracy_pct"] = (raw["accuracy"] * 100).round(1)
raw.to_sql("experiments_clean", engine, if_exists="replace", index=False)القراءة على دفعات للجداول الكبيرة
بالنسبة إلى الجداول الكبيرة جدًا بحيث لا تتسع لها الذاكرة، مرّروا chunksize إلى read_sql للتكرار على النتيجة على دفعات.
for chunk in pd.read_sql("SELECT * FROM big_table", engine, chunksize=10000):
process(chunk) # handle 10k rows at a timeاختبار سريع: إلحاق الصفوف
تريدون من to_sql إضافة صفوف جديدة إلى جدول موجود من دون حذفه.
مراجعة: pandas وSQL
يمكنكم الآن نقل البيانات بين pandas وقواعد البيانات:
create_engine(url)لإنشاء اتصال مستقل عن نوع قاعدة البياناتpd.read_sql(query, engine)لتحميل نتائج الاستعلام في DataFramedf.to_sql(table, engine, index=False, if_exists=...)للكتابة مرة أخرى- الاستعلامات المعلَّمة بالمعاملات و
chunksizeللأمان وقابلية التوسّع
التالي: تخزين نتائج تجارب تعلّم الآلة والاستعلام عنها.
الأسئلة الشائعة
هل درس «تكامل Pandas وSQL» مجاني؟
نعم — نص درس «تكامل Pandas وSQL» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Learn AI with Python، انتقل إلى CoddyKit PRO. تتضمن دورة Learn AI with Python 4 دروس في المجموع.
ماذا ستتعلم في «تكامل Pandas وSQL»؟
استخدام pd.read_sql() وdf.to_sql() ومحرك SQLAlchemy والاستعلام عن نتائج قاعدة البيانات مباشرةً في DataFrames. تتمرن على Learn AI with Python مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ Learn AI with Python؟
لا تُشترط خبرة سابقة. Learn AI with Python على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 2 من أصل 4.
كم من الوقت يستغرق درس «تكامل Pandas وSQL»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس Learn AI with Python هذا؟
نعم. كل درس في Learn AI with Python يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.
جميع الدروس في هذه الدورة
- SQLite مع وحدة sqlite3 في Python
- تكامل Pandas وSQL
- تخزين نتائج ML والاستعلام عنها
- مقدمة إلى قواعد البيانات المتجهية