ورقة غش Pandas
دليل مفصل لاستخدام مكتبة Pandas.
تثبيت Pandas
| الأمر | الوصف |
|---|---|
conda install pandas |
أفضل طريقة للحصول على pandas هي عبر conda |
python3 -m pip install --upgrade pandas |
عبر PyPI |
pip install pandas |
تثبيت pip القياسي |
الاختصارات الرئيسية واستيراد الحزم
| الاختصار | الوصف |
|---|---|
df |
أي كائن Pandas DataFrame |
s |
أي كائن Pandas Series |
طرق الاستيراد
| الأمر | الوصف |
|---|---|
import pandas as pd |
استيراد pandas بالاسم المستعار pd |
import numpy as np |
استيراد numpy بالاسم المستعار np |
اختيار البيانات
| الأمر | الوصف |
|---|---|
df[col] |
يرجع عمودًا كـ Series بناءً على اسم العمود |
df[[col1, col2]] |
يرجع أعمدة متعددة كـ DataFrame |
s.iloc[0] |
اختيار البيانات حسب الموقع |
s.loc['index_one'] |
اختيار البيانات حسب الفهرس |
df.iloc[0,:] |
يرجع الصف الأول |
df.iloc[0,0] |
يرجع العنصر الأول في العمود الأول |
تنظيف البيانات
| الأمر | الوصف |
|---|---|
df.columns = ['a','b','c'] |
إعادة تسمية الأعمدة |
pd.isnull() |
التحقق من القيم الفارغة في DataFrame؛ يرجع مصفوفة Boolean |
pd.notnull() |
التحقق من القيم غير الفارغة في DataFrame؛ يرجع مصفوفة Boolean |
df.dropna() |
حذف جميع الصفوف التي تحتوي على قيم فارغة |
df.dropna(axis=1) |
حذف جميع الأعمدة التي تحتوي على قيم فارغة |
df.dropna(axis=1, thresh=n) |
حذف جميع الصفوف التي تحتوي على أقل من n من القيم غير الفارغة |
df.fillna(x) |
استبدال جميع القيم الفارغة في DataFrame بـ x |
s.astype(float) |
تحويل نوع بيانات Series إلى float |
s.replace(1, 'one') |
استبدال جميع القيم المساوية لـ 1 بـ ‘one’ |
s.replace([1,3], ['one', 'three']) |
استبدال 1 بـ ‘one’ و 3 بـ ’three’ |
df.rename(columns=lambda x: x + 1) |
إعادة تسمية الأعمدة بالجملة |
df.rename(columns={'old_name': 'new_name'}) |
إعادة تسمية أعمدة محددة |
df.set_index('column_one') |
تغيير عمود الفهرس |
df.rename(index=lambda x: x + 1) |
إعادة تسمية الفهارس بالجملة |
استيراد البيانات
| الأمر | الوصف |
|---|---|
pd.read_csv(filename) |
استيراد البيانات من ملف CSV |
pd.read_table(filename) |
استيراد البيانات من ملف نصي محدد بمحددات |
pd.read_excel(filename) |
استيراد البيانات من ملف Excel |
pd.read_sql(query, connection_object) |
استيراد البيانات من جدول/قاعدة بيانات SQL |
pd.read_json(json_string) |
استيراد البيانات من سلسلة JSON |
pd.read_html(url) |
استخراج الجداول من URL أو سلسلة أو ملف HTML |
pd.read_clipboard() |
الحصول على المحتوى من الحافظة وتمريره إلى read_table() |
pd.DataFrame(dict) |
استيراد البيانات من كائن قاموس (المفاتيح هي أسماء الأعمدة، والقيم هي البيانات) |
تصدير البيانات
| الأمر | الوصف |
|---|---|
df.to_csv(filename) |
تصدير البيانات إلى ملف CSV |
df.to_excel(filename) |
تصدير البيانات إلى ملف Excel |
df.to_sql(table_name, connection_object) |
تصدير البيانات إلى جدول SQL |
df.to_json(filename) |
تصدير البيانات إلى ملف نصي بتنسيق JSON |
معالجة البيانات: Filter، Sort، و GroupBy
| الأمر | الوصف |
|---|---|
df[df[col] > 0.5] |
اختيار الصفوف التي تكون فيها قيمة العمود ‘col’ أكبر من 0.5 |
df.sort_values(col1) |
فرز البيانات حسب العمود col1 (تصاعدي افتراضيًا) |
df.sort_values(col2, ascending=False) |
فرز البيانات حسب العمود col2 بترتيب تنازلي |
df.sort_values([col1, col2], ascending=[True, False]) |
فرز حسب col1 تصاعديًا، ثم col2 تنازليًا |
df.groupby(col) |
يرجع كائن GroupBy مجمعًا حسب العمود ‘col’ |
df.groupby([col1, col2]) |
يرجع كائن GroupBy مجمعًا حسب أعمدة متعددة |
df.groupby(col1)[col2].mean() |
يرجع متوسط العمود col2 لكل مجموعة في col1 |
df.pivot_table(index=col1, values=[col2, col3], aggfunc=max) |
إنشاء جدول محوري مجمع حسب col1، مع حساب الحد الأقصى لـ col2 و col3 |
df.groupby(col1).agg(np.mean) |
يرجع المتوسط لجميع الأعمدة المجمعة حسب col1 |
df.apply(np.mean) |
تطبيق الوظيفة np.mean على كل عمود |
df.apply(np.max, axis=1) |
تطبيق الوظيفة np.max على كل صف |
إنشاء كائنات اختبار
| الأمر | الوصف |
|---|---|
pd.DataFrame(np.random.rand(20,5)) |
إنشاء DataFrame بـ 20 صفًا و 5 أعمدة من أرقام عشوائية |
pd.Series(my_list) |
إنشاء Series من كائن قابل للتكرار my_list |
df.index = pd.date_range('1900/1/30', periods=df.shape[0]) |
إضافة فهرس تاريخ |
عرض وفحص البيانات
| الأمر | الوصف |
|---|---|
df.head(n) |
عرض أول n صفوف من DataFrame |
df.tail(n) |
عرض آخر n صفوف من DataFrame |
df.shape |
عرض عدد الصفوف والأعمدة |
df.info() |
عرض الفهرس وأنواع البيانات ومعلومات الذاكرة |
df.describe() |
عرض إحصائيات ملخصة للأعمدة الرقمية |
s.value_counts(dropna=False) |
عرض القيم الفريدة وتكراراتها لـ Series |
df.apply(pd.Series.value_counts) |
عرض القيم الفريدة وتكراراتها لكل عمود في DataFrame |
دمج البيانات
| الأمر | الوصف |
|---|---|
df1.append(df2) |
إلحاق الصفوف من df2 إلى نهاية df1 |
pd.concat([df1, df2], axis=1) |
إلحاق الأعمدة من df2 إلى نهاية df1 |
df1.join(df2, on=col1, how='inner') |
دمج (Join) بنمط SQL بين أعمدة df1 و df2 |
إحصائيات البيانات
| الأمر | الوصف |
|---|---|
df.describe() |
عرض إحصائيات ملخصة للأعمدة الرقمية |
df.mean() |
يرجع متوسط جميع الأعمدة |
df.corr() |
يرجع معامل الارتباط بين الأعمدة |
df.count() |
يرجع عدد القيم غير الفارغة في كل عمود |
df.max() |
يرجع القيمة القصوى لكل عمود |
df.min() |
يرجع القيمة الدنيا لكل عمود |
df.median() |
يرجع الوسيط لكل عمود |
df.std() |
يرجع الانحراف المعياري لكل عمود |