مكتبة Pandas – الخطوة الثانية في علم البيانات بالبايثون ج2

يقدم المقال شرحًا مبسطًا عن أحد أهم مكتبات علم البيانات في البايثون

أهلًا بكم في الجزء الثاني من مقال مكتبة Pandas – الخطوة الثانية في علم البيانات بلغة البايثون.

هذا المقال هو جزء من سلسلة مقالات تتحدث عن مكتبات البايثون المهمة في علم البيانات. للتعرف أكثر على مكتبات علم البيانات في البايثون تستطيع الإطلاع على سلسلة المقالات التالية:

مكتبات علم البيانات في البايثون

مكتبة Numpy – الخطوة الأولى في علم البيانات بلغة البايثون

مكتبة Pandas – الخطوة الثانية في علم البيانات بالبايثون ج1

سنكمل في هذا الجزء العناوين التالية:

  • إنشاء إطار بيانات فارغ.
  • معرفة متى، وكيف نقوم بإعادة تغيير شكل إطار البيانات.
  • كيفية المرور على البيانات وقراءتها في إطار البيانات.
  • كيفية تصدير إطار البيانات إلى الملف خارجي

 

كيف نُنشئ إطار بيانات فارغ؟

الدالة Dataframe تُمَكنك من بناء إطار البيانات الذي تريده، ويتطلب منك أن تُمرر لها البيانات التي تريد وضعها في اطار البيانات بالإضافة الى تحديد الفهارس والأعمدة. تذكر دائمًا أن البيانات الموجودة في إطار البيانات لا يجب ان تكون من نوع واحد.

الشيفرة التالية توضح كيفية بناء إطار بيانات فارغ:

import pandas as pd
import numpy as np
df = pd.DataFrame(np.nan, index=[0,1,2,3], columns=[‘A’])

سيكون إطار البيانات df بالشكل التالي:

 

نستطيع استنتاج نوع البيانات التي سيتم حفظها في إطار البيانات df من خلال np.nan الذي يُعتبر من نوع float. على الرغم من ذلك، تستطيع أن تُحدد نوع البيانات الذي تريده للإطار الفارغ، وذلك باستخدام المُعامل dtype.

انظر للشيفرة التالية:

df = pd.DataFrame(index=range(0,4),columns=['A'], dtype='float')

 

معرفة متى، وكيف نقوم بإعادة تغيير شكل إطار البيانات

نقوم بإعادة تغيير شكل إطار البيانات وتحويله لشكل وابعاد أخرى عند حاجتنا لجعله أكثر ملائمة للعمل، وهذه العملية تُعنى بشكل إطار البيانات ولا تهتم بكيفية تنسيق القيم والبيانات داخله. يوجد ثلاثة طرق لتغيير شكل إطار البيانات وهي التحوير (Pivoting)، التكديس وفك التكديس (Stacking and Unstacking) والإذابة (Melting).

سنتكلم فقط عن موضوع تحوير إطار البيانات لشيوع استخدامه.

تحوير إطار البيانات

نستطيع إجراء عملية التحوير باستخدام الدالة pivot التي ينتج عنها جدول جديد من إطار البيانات الأصلي. عند استخدام هذه الدالة عليك تمرير ثلاثة معطيات كالتالي:

  • القيم: هذا المُعطى يسمح لك بتحديد القيم من إطار البيانات والتي تريد أن تراها موجودة في الجدول المُحوَّر.
  • الأعمدة: ما ستمرره هنا سيكون عبارة عن أعمدة الجدول المُحوَّر.
  • الفهرس: ما ستمرره هنا سيكون فهرس الجدول المُحوَّر.

انظر للمثال التالي:

import pandas as pd

products = pd.DataFrame({'category': ['Cleaning', 'Cleaning', 'Entertainment', 'Entertainment', 'Tech', 'Tech'],'store': ['Walmart', 'Dia', 'Walmart', 'Fnac', 'Dia','Walmart'],'price':[11.42, 23.50, 19.99, 15.95, 55.75, 111.55],'testscore': [4, 3, 5, 7, 5, 8]})

# Use `pivot()` to pivot the DataFrame

pivot_products = products.pivot(index='category', columns='store', values='price')

# Check out the result

print(pivot_products)

في المثال السابق قمنا بتحديد العمود price كمصدر للقيم في الجدول المُحوَّر، وجعلنا قيم العمود store هي الأعمدة وقيم العمود category هي الفهارس (المؤشرات).

سيكون شكل الجدول المُحوَّر كالتالي:

 

عندما لا نقوم بتحديد القيم التي ستكون في الجدول المُحوَّر، عندها سيتم التحوير باستخدام جميع الأعمدة المتبقية في إطار البيانات (تحوير بأعمدة متعددة):

# Construct the DataFrame

products = pd.DataFrame({'category': ['Cleaning', 'Cleaning', 'Entertainment', 'Entertainment', 'Tech', 'Tech'],'store': ['Walmart', 'Dia', 'Walmart', 'Fnac', 'Dia','Walmart'],'price':[11.42, 23.50, 19.99, 15.95, 55.75, 111.55],'testscore': [4, 3, 5, 7, 5, 8]})

# Use `pivot()` to pivot your DataFrame

pivot_products = products.pivot(index='category', columns='store')

# Check out the results

print(pivot_products)

وسيكون شكل الجدول المُحوَّر كالتالي:

انتبه عند تحديد بيانات الجدول المُحوَّر ألا يكون هناك صفوف لها قيم متكررة مع الأعمدة التي تختارها. في حالة وجود تكرار سيظهر لك خطأ.

إذا لم تكن متأكدا من الأمر السابق تستطيع عندها استخدام الدالة pivot_table بدلًا من الدالة pivot والذي يزيل التكرار بشكل تلقائي:

# Your DataFrame

products = pd.DataFrame({'category': ['Cleaning', 'Cleaning', 'Entertainment', 'Entertainment', 'Tech', 'Tech'],'store': ['Dia', 'Dia', 'Walmart', 'Fnac', 'Dia','Walmart'],'price':[11.42, 23.50, 19.99, 15.95, 19.99, 111.55],'testscore': [4, 3, 5, 7, 5, 8]})

# Pivot your `products` DataFrame with `pivot_table()`

pivot_products = products.pivot_table(index='category', columns='store', values='price')

# Check out the results

print(pivot_products)

 

كيفية المرور على البيانات وقراءتها في إطار البيانات

تستطيع المرور على صفوف إطار البيانات باستخدام حلقة التكرار for والدالة iterrows الخاصة بإطار البيانات كما في الشيفرة التالية:

df = pd.DataFrame(data=np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]]), columns=['A', 'B', 'C'])

for index, row in df.iterrows() :

    print(row['A'], row['B'])

 

كيفية تصدير إطار البيانات إلى الملف خارجي

عند انتهائك من التعامل مع اطار البيانات وتنسيقه وتجهيز الشكل الذي تريده من البيانات، قد تحتاج لتصدير البيانات لنوع اخر من الملفات مثل ملف csv او Excel.

تصدير إطار البيانات لملف csv

نستخدم الدالة to_csv لتصدير إطار البيانات الذي نريده لصيغة الملف csv:

import pandas as pd

df.to_csv('myDataFrame.csv')

الشيفرة البرمجية السابقة تبدو بسيطة وسهلة، ولكن من هنا تبدأ الصعوبات التي تواجه الكثير بسبب وجود متطلبات معينة تحتاجها في الملف مثل الرمز الفاصل (Delimiter) والذي بالعادة يكون رمز الفاصلة العادية.

لا تقلق، ستستطيع تحديد الرمز الذي تريده في ملف csv دون عناء، كل ما عليك هو تمرير المعامل sep للدالة وتحديد الرمز الذي تريده:

import pandas as pd

df.to_csv('myDataFrame.csv', sep='\t')

لتحديد تشفير البيانات نستخدم المعامل encoding:

import pandas as pd

df.to_csv('myDataFrame.csv', sep='\t', encoding='utf-8')

 

تصدير إطار البيانات لملف Excel

بطريقة مشابهة لما قمنا به سابقا في تحويل إطار البيانات لملف csv، نستخدم الدالة to_excel لتصدير إطار البيانات لملف excel ولكن بطريقة أعقد قليلا:

import pandas as pd

writer = pd.ExcelWriter('myDataFrame.xlsx')

df.to_excel(writer, 'DataFrame')

writer.save()

 

يوجد العديد من المعامِلات التي من الممكن أن تستخدمها مثل startcol و startrow لترتيب البيانات في الملف بالطريقة التي تراها مناسبة.

خاتمة

تهانينا، لقد وصلت لنهاية هذا المقال المكون من جزئين والذي تطرقنا فيهما لمكتبة البايثون المسماة Pandas والتي تُعتبر من المكتبات المشهورة في علم البيانات بلغة البايثون.

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

تعلمنا خلال هذا المقال كيفية التعامل مع مكتبة Pandas وموضوعها الأساسي إطار البيانات.

تحدثنا في الجزء الأول  من المقال مكتبة Pandas – الخطوة الثانية في علم البيانات بلغة البايثون – الجزء الأول عن:

  • كيفية تعريف إطار بيانات مكتبة Pandas.
  • كيفية تحديد مؤشر أو عمود من إطار البيانات.
  • كيفية إضافة مؤشر، صف أو عمود إلى إطار البيانات.
  • حذف فهرس، صف أو عمود من إطار البيانات.
  • كيفية إعادة تسمية الأعمدة والفهارس في إطار البيانات.
  • كيفية عمل Format للبيانات في إطار البيانات.

وفي هذا الجزء الثاني تحدثنا عن:

  • إنشاء إطار بيانات فارغ.
  • معرفة متى، وكيف، ولماذا نقوم بإعادة تغيير شكل إطار البيانات.
  • كيفية المرور على البيانات وقراءتها في إطار البيانات.
  • كيفية تصدير إطار البيانات إلى الملف خارجي.
كلمات دليلية: pandas python
1
إعجاب
313
مشاهدات
0
مشاركة
1
متابع

التعليقات (0)

لايوجد لديك حساب في عالم البرمجة؟

تحب تنضم لعالم البرمجة؟ وتنشئ عالمك الخاص، تنشر المقالات، الدورات، تشارك المبرمجين وتساعد الآخرين، اشترك الآن بخطوات يسيرة !