كيف يساهم الابتكار في التكنولوجيا في تمكين قطاع تطوير التطبيقات؟ 1

كيفية الاستعلام عن Pandas Dataframe

عقدة المصدر: 1017694

كيفية الاستعلام عن Pandas Dataframe

منظور عالم البيانات في وظائف Python الشبيهة بـ SQL.


By ماثيو برزيبيلا، كبير علماء البيانات في Favor Delivery



تصوير بروس هونغ on Unsplash [1].

جدول المحتويات

 
 

  1. المُقدّمة
  2. شروط متعددة
  3. الدمج في أعمدة متعددة ومحددة
  4. نبذة عامة
  5. مراجع حسابات

المُقدّمة

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

شروط متعددة

 
 



بيانات العينة. لقطة من المؤلف [2].

 

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

سوف يجيب مثال الشروط المتعددة بشكل أساسي على سؤال محدد، تمامًا كما هو الحال عند استخدام SQL. والسؤال هو، ما هي النسبة المئوية لبياناتنا التي تنتمي إلى جنس الذكور OR الشخص الذي ولد بين عامي 2010 و 2021.

إليك الكود الذي سيحل هذا السؤال (هناك عدة طرق للإجابة على هذا السؤال، ولكن إليك طريقتي المحددة للقيام بذلك):

print(“Percent of data who are Males OR were born between 2010 and 2021:”, 100*round(df[(df[‘Gender’] == ‘M’) | (df[‘Birthdate’] >= ‘2010–01–01’) & (df[‘Birthdate’] <= ‘2021–01–01’)][‘Gender’].count()/df.shape [0],4), “%”)

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



كود الشروط. لقطة شاشة للمؤلف [3].

 

وهذا هو ترتيب الأوامر التي قمنا بتنفيذها:

  • إرجاع الصفوف مع ذكر Gender
  • تشمل OR وظيفة |
  • إرجاع صفوف Birthdate > 2010 و 2021
  • اجمع كل هذه العناصر، ثم اقسمها على إجمالي عدد الصفوف

كما ترون، هذا الرمز مشابه لما قد تراه في SQL. أنا شخصياً أعتقد أن الأمر أسهل في الباندا لأنه يمكن أن يحتوي على تعليمات برمجية أقل، مع القدرة أيضًا على رؤية جميع التعليمات البرمجية بصريًا في مكان واحد سهل، دون الحاجة إلى التمرير لأعلى ولأسفل (ولكن هذا التنسيق هو مجرد تفضيلي).

الدمج في أعمدة متعددة ومحددة

 
 



نتيجة dataframe المدمجة. لقطة شاشة للمؤلف [4].

 

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

لدينا إطار البيانات الأول، وهو df، ثم نقوم بدمج أعمدتنا في إطار بيانات ثانٍ، df2. إليك هذا الكود لتحقيق النتيجة المتوقعة:

merged_df = df.merge(df2, how=’inner’, left_on=cols, right_on=cols )

لتصور هذا الدمج والكود بشكل أفضل، قدمت لقطة الشاشة أدناه. ترى كيف يبدو إطار البيانات الثاني أدناه، مع ملف First و  Last الأسماء، تمامًا كما هي في إطار البيانات الأول، ولكن مع عمود جديد، Numeric. بعد ذلك، لدينا أعمدة محددة أردنا دمجها، أثناء إرجاع الأعمدة GenderBirthdate، والجديد Numeric العمود كذلك. الأعمدة هي قائمة من الأعمدة، والتي تم تسميتها cols.



دمج إطار البيانات. لقطة شاشة للمؤلف [5].

 

كما ترون، هذه الطريقة لدمج إطارات البيانات هي طريقة بسيطة لتحقيق نفس النتائج التي قد تحصل عليها من استعلام SQL.

نبذة عامة

 
 
في هذا البرنامج التعليمي، رأينا سؤالين أو استعلامات شائعة يمكنك إجراؤها في SQL، ولكن بدلاً من ذلك، قمت بإجرائها باستخدام إطارات بيانات الباندا في Python.

لتلخيص ذلك، إليك السيناريوهين اللذين عملنا عليهما:

  1. إرجاع النسبة المئوية للصفوف من إجمالي مجموعة البيانات من شروط متعددة
  2. الدمج في أعمدة متعددة ومحددة لإرجاع إطار بيانات نهائي بعمود جديد

أتمنى أن تجد مقالتي مثيرة للاهتمام ومفيدة. لا تتردد في التعليق أدناه إذا كنت توافق أو لا توافق على هذه الأساليب. لما و لما لا؟ يمكن بالتأكيد توضيح هذه الأمور بشكل أكبر، ولكنني آمل أن أتمكن من إلقاء بعض الضوء على بعض الطرق التي يمكنك من خلالها استخدام pandas وPython بدلاً من SQL. شكرا لقرائتك!

من فضلك لا تتردد في التحقق من ملفي الشخصي، مات برزيبيلاومقالات أخرى، فضلاً عن التواصل معي على LinkedIn.

أنا لست تابعًا لهذه الشركات.

 
مراجع حسابات

[1] تصوير بروس هونغ on Unsplash(2018)

[2] M. Przybyla، لقطة شاشة لعينة من البيانات، (2021)

[3] م. برزيبيلا، لقطة شاشة لرمز الشروط، (2021)

[4] M. Przybyla، لقطة شاشة لنتيجة إطار البيانات المدمج، (2021)

[5] M. Przybyla، لقطة شاشة لدمج إطار البيانات، (2021)

 
السيرة الذاتية: ماثيو برزيبيلا هو عالم بيانات أول في شركة Favor Delivery، وكاتب تقني مستقل، خاصة في علوم البيانات.

أصلي. تم إعادة النشر بإذن.

هذا الموضوع ذو علاقة بـ:

المصدر: https://www.kdnuggets.com/2021/08/query-pandas-dataframe.html

الطابع الزمني:

اكثر من KD nuggets