ورقة الغش الباندا لعلوم البيانات في Python
⚡ ملخص ذكي
تُقدّم أوراق الغش الخاصة بـ Pandas ملخصًا لأكثر أوامر المكتبة استخدامًا في صفحة واحدة. ويُصنّف هذا المرجع الأوامر حسب المهمة: التثبيت، وبناء السلاسل وإطارات البيانات، واستيراد الملفات، وتحديد الصفوف، وتنظيف البيانات، وتطبيق الدوال، وتصدير النتائج.
ما هي ورقة الغش الخاصة بـ Pandas؟
تحتوي مكتبة Pandas على مئات الدوال، ولكن لا يظهر منها سوى جزء صغير في العمل اليومي. دليل استخدام باندا هو مرجع من صفحة واحدة يسرد تلك الأوامر، مصنفة حسب المهمة التي تؤديها.
يغطي هذا القسم هياكل السلاسل وإطارات البيانات، واستيراد وتصدير الملفات، واختيار البيانات وترتيبها، وتنظيف القيم، وتطبيق الدوال. يحتوي كل قسم أدناه على شرح موجز مصحوب بشفرة قابلة للتنفيذ، لذا تُعد هذه الصفحة بمثابة مراجعة سريعة لمعلوماتك. مهارات تحليل البيانات.
👉 قم بتنزيل ملف PDF الخاص بورقة الغش هنا
كيفية تثبيت واستيراد مكتبة Pandas
يتطلب إعداد Pandas تنفيذ أمرين، وكلاهما يعمل في سطر الأوامر أو Jupyter دفتر خلية - زنزانة.
الخطوة 1) تثبيت مكتبة Pandas
قم بتشغيل هذا مرة واحدة لكل بيئة؛ وابدأه بعلامة تعجب في خلية دفتر الملاحظات.
pip install pandas
الخطوة الثانية: استيراد مكتبة Pandas
استورد الحزمة تحت الاسم المستعار pdوهو ما يفترضه كل مثال هنا.
import pandas as pd
يمكنك الآن استدعاء دوال Pandas لمعالجة البيانات وتحليلها وتنظيفها. تُدرج الأقسام أدناه هذه الدوال بالترتيب الذي تستخدمها به عادةً.
هياكل بيانات الباندا
تحتوي مكتبة Pandas على بنيتين للبيانات، مسلسلات و DataFrameكلاهما عبارة عن مصفوفات مُصنّفة، وكلاهما يمكنه استيعاب أي نوع من البيانات. الفرق الوحيد هو الأبعاد: السلسلة (Series) هي مصفوفة أحادية البعد، بينما إطار البيانات (DataFrame) هو مصفوفة ثنائية الأبعاد مبنية من نمباي المصفوفات الموجودة أسفلها.
| الميزات | مسلسلات | DataFrame |
|---|---|---|
| الأبعاد | أحادي البعد | ثنائي الأبعاد |
| يحمل | عمود واحد مُصنَّف | أعمدة متعددة، وأنواع بيانات مختلطة |
| منشئ | pd.Series() | pd.DataFrame () |
1. السلسلة
هو عبارة عن مصفوفة أحادية البعد مُصنّفة. يمكنها استيعاب أي نوع من البيانات، و None تصبح قيمة مفقودة.
s = pd.Series([2, -4, 6, 3, None], index=['A', 'B', 'C', 'D', 'E'])
2. إطار البيانات
هو عبارة عن مصفوفة ثنائية الأبعاد ذات تسميات. يمكنها استيعاب أي نوع من البيانات وأحجام مختلفة للأعمدة.
data = {'RollNo' : [101, 102, 75, 99],
'Name' : ['Mithlesh', 'Ram', 'Rudra', 'Mithlesh'],
'Course' : ['Nodejs', None, 'Nodejs', 'JavaScript']
}
df = pd.DataFrame(data, columns=['RollNo', 'Name', 'Course'])
df.head()
تحتوي ورقة الغش القابلة للطباعة أدناه على نفس الأوامر في صفحة واحدة.
استيراد البيانات
تستطيع مكتبة Pandas قراءة أنواع ملفات متعددة مباشرةً إلى DataFrame. كل قارئ أدناه يُرجع نوعًا واحدًا، و read_csv () هو الأكثر استخداما.
# Import a CSV file pd pd.read_csv(filename) # Import a TSV file pd.read_table(filename) # Import a Excel file pd pd.read_excel(filename) # Import a SQL table/database pd.read_sql(query, connection_object) # Import a JSON file pd.read_json(json_string) # Import a HTML file pd.read_html(url) # From clipboard to read_table() pd.read_clipboard() # From dict pd.DataFrame(dict)
اختيار
يمكنك تحديد العناصر حسب موقعها أو حسب فهرسها. ويُستخدم نفس بناء الجملة بين قوسين مربعين لاختيار الصفوف والأعمدة والشرائح من كلا البنيتين.
1. السلسلة
# Accessing one element from Series s['D'] # Accessing all elements between two given indices s['A':'C'] # Accessing all elements from starting till given index s[:'C'] # Accessing all elements from given index till end s['B':]
2. إطار البيانات
# Accessing one column df df['Name'] # Accessing rows from after given row df[1:] # Accessing till before given row df[:1] # Accessing rows between two given rows df[1:2]
الاختيار عن طريق الفهرسة المنطقية والإعداد
استعمل iloc و iat بالنسبة للمواقع الصحيحة، و loc و at للملصقات.
1 حسب المنصب
df.iloc[0, 1] df.iat[0, 1]
2. عن طريق التسمية
df.loc[[0], ['Name']]
3. حسب التسمية/المنصب
df.loc[2] # Both are same
df.iloc[2]
4. الفهرسة المنطقية
يحتفظ القناع المنطقي فقط بالصفوف التي يكون فيها الشرط صحيحًا. ويضيف المثال الثاني عامل النفي (NOT). ~لذا فهو يُرجع أيضًا قيمًا لا تتجاوز 1.
# Series s where value is > 1 s[(s > 0)] # Series s where value is <-2 or >1 s[(s < -2) | ~(s > 1)] # Use filter to adjust DataFrame df[df['RollNo']>100] # Set index a of Series s to 6 s['D'] = 10 s.head()
تنظيف البيانات
في عمل Python لأغراض تنظيف البيانات، يمكنك إجراء العمليات التالية:
- أعد تسمية الأعمدة باستخدام
rename()الأسلوب. - قم بتحديث القيم باستخدام
at[]oriat[]طريقة للوصول إلى عناصر محددة وتعديلها. - أنشئ نسخة من سلسلة بيانات أو إطار بيانات باستخدام
copy()الأسلوب. - تحقق من القيم الفارغة باستخدام
isnull()الطريقة، ثم قم بإسقاطها باستخدامdropna()الأسلوب. - تحقق من القيم المكررة باستخدام
duplicated()الطريقة. قم بإسقاطها باستخدامdrop_duplicates()الأسلوب. - استبدل القيم الفارغة باستخدام
fillna()طريقة ذات قيمة محددة. - استبدل القيم باستخدام
replace()الأسلوب. - فرز القيم باستخدام
sort_values()الأسلوب. - رتب القيم باستخدام
rank()الأسلوب.
# Renaming columns df.columns = ['a','b','c'] df.head() # Mass renaming of columns df = df.rename(columns={'RollNo': 'ID', 'Name': 'Student_Name'}) # Or use this edit in same DataFrame instead of in copy df.rename(columns={'RollNo': 'ID', 'Name': 'Student_Name'}, inplace=True) df.head() # Counting duplicates in a column df.duplicated(subset='Name') # Removing entire row that has duplicate in given column df.drop_duplicates(subset=['Name']) # You can choose which one keep - by default is first df.drop_duplicates(subset=['Name'], keep='last') # Checks for Null Values s.isnull() # Checks for non-Null Values - reverse of isnull() s.notnull() # Checks for Null Values df df.isnull() # Checks for non-Null Values - reverse of isnull() df.notnull() # Drops all rows that contain null values df.dropna() # Drops all columns that contain null values df.dropna(axis=1) # Replaces all null values with 'Guru99' df.fillna('Guru99') # Replaces all null values with the mean s.fillna(s.mean()) # Converts the datatype of the Series to float s.astype(float) # Replaces all values equal to 6 with 'Six' s.replace(6,'Six') # Replaces all 2 with 'Two' and 6 with 'Six' s.replace([2,6],['Two','Six']) # Drop from rows (axis=0) s.drop(['B', 'D']) # Drop from columns(axis=1) df.drop('Name', axis=1) # Sort by labels with axis df.sort_index() # Sort by values with axis df.sort_values(by='RollNo') # Ranking entries df.rank() # s1 is pointing to same Series as s s1 = s # s_copy of s, but not pointing same Series s_copy = s.copy() # df1 is pointing to same DataFrame as df df1 = s # df_copy of df, but not pointing same DataFrame df_copy = df.copy()
نلاحظ أن s1 = s لا يقوم إلا بإنشاء اسم ثانٍ لنفس الكائن، وليس نسخة منه أبدًا - ولهذا السبب copy() يتبع ذلك.
استرجاع المعلومات
يمكنك إجراء هذه العمليات لاسترجاع المعلومات:
- استخدم
shapeالسمة للحصول على عدد الصفوف والأعمدة. - استخدم
head()ortail()طريقة للحصول على الصفوف القليلة الأولى أو الأخيرة كعينة. - استخدم
info(),describe()ordtypesطريقة للحصول على معلومات حول نوع البيانات، والعدد، والمتوسط، والانحراف المعياري، والقيم الدنيا والقصوى. - استخدم
count(),min(),max(),sum(),mean()وmedian()طرق للحصول على معلومات إحصائية محددة للقيم. - استخدم
loc[]طريقة للحصول على صف. - استخدم
groupby()طريقة لتطبيق دالة GROUP BY لتجميع القيم المتشابهة في عمود من DataFrame.
1. معلومات اساسية
# Counting all elements in Series len(s) # Counting all elements in DataFrame len(df) # Prints number of rows and columns in dataframe df.shape # Prints first 10 rows by default, if no value set df.head(10) # Prints last 10 rows by default, if no value set df.tail(10) # For counting non-Null values column-wise df.count() # For range of index df df.index # For name of attributes/columns df.columns # Index, Data Type and Memory information df.info() # Datatypes of each column df.dtypes # Summary statistics for numerical columns df.describe()
2. ملخص
# For adding all values column-wise df.sum() # For min column-wise df.min() # For max column-wise df.max() # For mean value in number column df.mean() # For median value in number column df.median() # Count non-Null values s.count() # Count non-Null values df.count() # Return Series of given column df['Name'].tolist() # Name of columns df.columns.tolist() # Creating subset df[['Name', 'Course']] # Return number of values in each group df.groupby('Name').count()
تطبيق الوظائف
apply() يقوم هذا الإجراء بتطبيق دالة على كل قيمة. ثم تحدد قواعد المحاذاة ما يحدث عندما يشترك كائنان في جزء فقط من فهرسهما.
# Define function f = lambda x: x*5 # Apply this function on given Series - For each value s.apply(f) # Apply this function on given DataFrame - For each value df.apply(f)
1. محاذاة البيانات الداخلية
# NA values for indices that don't overlap s2 = pd.Series([8, -1, 4], index=['A', 'C', 'D']) s + s2
2. الحساب Operaمع طرق التعبئة
# Fill values that don't overlap
s.add(s2, fill_value=0)
3. التصفية والفرز والتجميع حسب
يمكن استخدام هذه الوظائف للتصفية والفرز والتجميعping كائنات السلسلة وإطار البيانات.
# Filter rows where column is greater than 100 df[df['RollNo']>100] # Filter rows where 70 < column < 101 df[(df['RollNo'] > 70) & (df['RollNo'] < 101)] # Sorts values in ascending order s.sort_values() # Sorts values in descending order s.sort_values(ascending=False) # Sorts values by RollNo in ascending order df.sort_values('RollNo') # Sorts values by RollNo in descending order df.sort_values('RollNo', ascending=False)
تصدير البيانات
كل كاتب أدناه يعكس قارئًا من قسم الاستيراد، بحيث يمكن للملف أن يقوم بالرحلة ذهابًا وإيابًا دون أدوات إضافية.
# Export as a CSV file df df.to_csv(filename) # Export as a Excel file df df.to_excel(filename) # Export as a SQL table df df.to_sql(table_name, connection_object) # Export as a JSON file df.to_json(filename) # Export as a HTML table df.to_html(filename) # Write to the clipboard df.to_clipboard()
كولاب من ورقة الغش
يمكن تنفيذ كل أمر هنا في دفتر الملاحظات المصاحب: ورقة الغش الباندا – Python لعلم البيانات.ipynb.

