الباندا: حدد الصفوف التي يتساوى فيها عمودان
يمكنك استخدام الطرق التالية لتحديد صفوف في pandas DataFrame حيث يكون عمودان متساويان (أو غير متساويين):
الطريقة الأولى: تحديد الصفوف التي يكون فيها عمودين متساويين
df. query (' column1 ==column2 ')
الطريقة الثانية: تحديد الصفوف التي لا يكون فيها العمودان متساويين
df. query (' column1 !=column2 ')
توضح الأمثلة التالية كيفية استخدام كل طريقة عمليًا مع الباندا DataFrame التالية:
import pandas as pd #createDataFrame df = pd. DataFrame ({' painting ': ['A', 'B', 'C', 'D', 'E', 'F'], ' fail1 ': ['Good', 'Good', 'Bad', 'Bad', 'Good', 'Good'], ' fail2 ': ['Good', 'Bad', 'Bad', 'Good', 'Good', 'Good']}) #view DataFrame print (df) painting rater1 rater2 0 A Good Good 1 B Good Bad 2 C Bad Bad 3 D Bad Good 4 E Good Good 5 F Good Good
مثال 1: حدد الصفوف التي يكون فيها عمودين متساويين
يمكننا استخدام بناء الجملة التالي لتحديد الصفوف الموجودة في DataFrame فقط حيث تتساوى قيم العمودين Rate1 و rater2 :
#select rows where rater1 is equal to rater2 df. query (' rater1 ==rater2 ') painting rater1 rater2 0 A Good Good 2 C Bad Bad 4 E Good Good 5 F Good Good
لاحظ أنه تم تحديد الأسطر التي تكون فيها Miss1 و miss2 متساوية فقط.
يمكننا أيضًا استخدام الدالة len() إذا أردنا ببساطة حساب عدد الصفوف التي لها قيم متساوية في العمودين rater1 و rater2 :
#count the number of rows where rater1 is equal to rater2 len ( df.query (' rater1 ==rater2 ')) 4
يخبرنا هذا أن هناك 4 صفوف تتساوى فيها قيم العمودين Miss1 و miss2 .
مثال 2: حدد صفوفًا لا يكون فيها عمودان متساويان
يمكننا استخدام بناء الجملة التالي لتحديد تلك الصفوف فقط في DataFrame حيث لا تتساوى قيم العمودين Rate1 و rater2 :
#select rows where rater1 is not equal to rater2 df. query (' rater1 !=rater2 ') painting rater1 rater2 1 B Good Bad 3 D Bad Good
لاحظ أنه يتم تحديد الأسطر التي لا يكون فيها Miss1 و miss2 متساويين فقط.
مصادر إضافية
تشرح البرامج التعليمية التالية كيفية تنفيذ المهام الشائعة الأخرى في الباندا:
كيفية إعادة تسمية الأعمدة في الباندا
كيفية إضافة عمود إلى Pandas DataFrame
كيفية تغيير ترتيب الأعمدة في Pandas DataFrame