Python و pandas وحل ثلاث مشاكل من عالم Excel

يعد Excel أداة تحليل بيانات شائعة للغاية. من السهل تعلم كيفية العمل معه ، فهو موجود على كل جهاز كمبيوتر تقريبًا ، ويمكن للشخص الذي أتقنه حل المشاكل المعقدة للغاية به. غالبًا ما تُعد Python أداة لا حدود لها تقريبًا ، ولكن من الصعب إتقانها أكثر من Excel. يريد مؤلف المادة ، التي ننشر ترجمتها اليوم ، التحدث عن الحل باستخدام Python للمهام الثلاث التي يتم حلها عادةً في Excel. هذه المقالة هي جزء من مقدمة Python لأولئك الذين يعرفون Excel جيدًا.



تحميل البيانات


دعونا نبدأ عن طريق استيراد مكتبة بايثون pandasوتحميل البيانات إلى إطارات البيانات التي يتم تخزينها على اكسل صحائف salesو statesالمصنفات. سنعطي نفس الأسماء إلى إطارات البيانات المقابلة.

import pandas as pd
sales = pd.read_excel('https://github.com/datagy/mediumdata/raw/master/pythonexcel.xlsx', sheet_name = 'sales')
states = pd.read_excel('https://github.com/datagy/mediumdata/raw/master/pythonexcel.xlsx', sheet_name = 'states')

الآن سنستخدم طريقة .head()إطار البيانات salesلعرض العناصر في بداية إطار البيانات:

print(sales.head())

قارن ما سيتم عرضه مع ما يمكنك رؤيته في Excel.


مقارنة بين مظهر إخراج البيانات في Excel ومظهر إخراج البيانات من إطار بيانات الباندا

هنا يمكنك أن ترى أن نتائج تصور البيانات من إطار البيانات مشابهة جدًا لما يمكنك رؤيته في Excel. ولكن هناك بعض الاختلافات المهمة جدًا:

  • يبدأ ترقيم الصف في Excel من 1 ، وفي الباندا الرقم (الفهرس) للصف الأول هو 0.
  • في Excel ، تحتوي الأعمدة على أحرف تبدأ بحرف A، وفي الباندا ، تتوافق أسماء الأعمدة مع أسماء المتغيرات المقابلة.

سنستمر في دراسة إمكانيات الباندا التي تسمح لنا بحل المشكلات التي يتم حلها عادةً في Excel.

تنفيذ وظيفة Excel Excel IF في Python


يحتوي Excel على وظيفة ملائمة للغاية IFتسمح ، على سبيل المثال ، بكتابة شيء ما إلى خلية ، بناءً على فحص ما يوجد في خلية أخرى. لنفترض أنك تريد إنشاء عمود جديد في Excel ، ستخبرنا خلاياه إذا كانت القيم في الخلايا المقابلة في العمود تتجاوز 500 B. في Excel ، Eيمكنك تعيين عنوان لهذا العمود (في حالتنا ، عمود ) عن طريق MoreThan500كتابة النص المقابل للخلية E1. بعد ذلك ، في الخلية E2، يمكنك إدخال ما يلي:

=IF([@Sales]>500, "Yes", "No")


استخدام الدالة IF في Excel من

أجل القيام بنفس الشيء مع الباندا ، يمكنك استخدام فهم القائمة:

sales['MoreThan500'] = ['Yes' if x > 500 else 'No' for x in sales['Sales']]


إدراج قائمة في Python: إذا كانت القيمة الحالية أكثر من 500 ، يتم تضمين نعم في القائمة ؛ وإلا ، فإن

تضمين القائمة ليس أداة ممتازة لحل مثل هذه المشاكل ، والتي تبسط الشفرة عن طريق تقليل الحاجة إلى الإنشاءات المعقدة مثل if / else. يمكن حل نفس المشكلة باستخدام if / else ، لكن النهج المقترح يوفر الوقت ويجعل الشفرة أكثر نظافة. يمكن العثور على تفاصيل إدراج القائمة هنا .

تنفيذ وظيفة VLOOKUP Excel في Python


في مجموعة البيانات الخاصة بنا ، على إحدى أوراق Excel ، توجد أسماء المدن ، ومن جهة أخرى ، أسماء الولايات والمقاطعات. كيف تعرف بالضبط أين تقع كل مدينة؟ تعتبر وظيفة Excel مناسبة لذلك VLOOKUP، والتي يمكنك من خلالها ربط بيانات جدولين. تعمل هذه الوظيفة على مبدأ الصلة اليسرى ، عندما يتم حفظ كل سجل من مجموعة البيانات الموجودة على الجانب الأيسر من التعبير. باستخدام الوظيفة VLOOKUP، نقترح أن يبحث النظام عن قيمة محددة في عمود معين بورقة محددة ، ثم إرجاع قيمة عبارة عن عدد محدد من الأعمدة إلى يمين القيمة التي تم العثور عليها. إليك ما يبدو عليه:

=VLOOKUP([@City],states,2,false)

نقوم بتعيين salesعنوان العمود على الورقة Fحيث Stateنستخدم الوظيفة VLOOKUPلملء خلايا هذا العمود بأسماء الولايات والمقاطعات التي تقع فيها المدن.


استخدام وظيفة VLOOKUP في Excel

في Python ، يمكنك أن تفعل الشيء نفسه باستخدام الطريقةmergeمن pandas. يستغرق إطارين للبيانات ويجمعهما. لحل هذه المشكلة نحتاج الكود التالي:

sales = pd.merge(sales, states, how='left', on='City')

دعونا نحللها:

  1. الحجة الأولى للطريقة mergeهي إطار البيانات الأصلي.
  2. الحجة الثانية هي إطار البيانات الذي نبحث فيه عن القيم.
  3. howتشير الحجة بالضبط كيف نريد ضم البيانات.
  4. حجة onالنقاط للمتغير الذي ينبغي أن يؤديها الاتصال (هنا يمكنك الاستمرار في استخدام الحجج left_onو right_on، حسب إذا تم تسمية بيانات مصلحة لنا في إطارات البيانات المختلفة بشكل مختلف).

جداول الملخص


تعد الجداول المحورية واحدة من أقوى ميزات Excel. تسمح لك هذه الجداول باستخراج المعلومات القيمة بسرعة من مجموعات البيانات الكبيرة. قم بإنشاء Excel PivotTable يعرض معلومات حول إجمالي المبيعات لكل مدينة.


إنشاء PivotTable في Excel

كما ترى ، لإنشاء مثل هذا الجدول ، ما عليك سوى سحب الحقلCityإلى القسمRowsوالحقلSalesإلى القسمValues. بعد ذلك ، سيعرض Excel تلقائيًا إجمالي المبيعات لكل مدينة.

لإنشاء نفس الجدول المحوري في الباندا ، ستحتاج إلى كتابة الرمز التالي:

sales.pivot_table(index = 'City', values = 'Sales', aggfunc = 'sum')

دعونا نحللها:

  1. هنا نستخدم طريقة sales.pivot_table، تخبر الباندا أننا نريد إنشاء جدول محوري بناءً على إطار البيانات sales.
  2. تشير الوسيطة indexإلى العمود الذي نريد من خلاله تجميع البيانات.
  3. valuesتشير الحجة إلى القيم التي سنجمعها.
  4. حجة aggfuncتحدد الدالة التي نريد استخدامها في تجهيز القيم (هنا يمكنك الاستمرار في استخدام وظائف mean، max، minوهلم جرا).

ملخص


من هذه المادة ، تعلمت كيفية استيراد بيانات Excel إلى الباندا ، وكيفية تنفيذ إمكانيات وظائف Excel IFو pandas لأدوات PythonVLOOKUP، وكذلك كيفية إعادة إنتاج وظيفة الجداول المحورية في Excel باستخدام الباندا. ربما تتساءل الآن لماذا يجب عليك استخدام الباندا إذا كنت تستطيع أن تفعل الشيء نفسه في Excel. لا توجد إجابة واحدة على هذا السؤال. يسمح لك Python بإنشاء رمز يمكن ضبطه بدقة والبحث عنه بعمق. يمكن إعادة استخدام هذا الرمز. يمكن لـ Python وصف مخططات تحليل البيانات المعقدة للغاية. وربما تكون ميزات Excel كافية فقط لأبحاث البيانات على نطاق أصغر. إذا كنت قد استخدمت Excel حتى الآن فقط ، فإنني أوصيك بتجربة Python و pandas ومعرفة ما يمكنك القيام به.

ما الأدوات التي تستخدمها لتحليل البيانات؟

, , iPhone. , .


All Articles