الباندا: كيفية استخدام isin لأعمدة متعددة
يمكنك استخدام الطرق التالية مع وظيفة pandas isin() للتصفية بناءً على أعمدة متعددة في pandas DataFrame:
الطريقة الأولى: التصفية عندما تساوي أعمدة متعددة قيمًا محددة
df = df[df[[' team ', ' position ']]. isin ([' A ',' Guard ']). all (axis= 1 )]
يقوم هذا المثال المحدد بتصفية DataFrame للصفوف حيث يساوي عمود الفريق “A” وعمود الموضع يساوي “Guard”.
الطريقة الثانية: التصفية حيث يساوي عمود واحد على الأقل قيمة محددة
df = df[df[[' team ', ' position ']]. isin ([' A ',' Guard ']). any (axis= 1 )]
يقوم هذا المثال المحدد بتصفية DataFrame للصفوف حيث يساوي عمود الفريق “A” أو عمود الموضع يساوي “Guard”.
توضح الأمثلة التالية كيفية استخدام كل طريقة عمليًا مع الباندا DataFrame التالية:
import pandas as pd #createDataFrame df = pd. DataFrame ({' team ': ['A', 'A', 'A', 'A', 'B', 'B', 'B', 'B'], ' position ': ['Guard', 'Guard', 'Forward', 'Forward', 'Guard', 'Guard', 'Forward', 'Forward'], ' points ': [11, 18, 10, 22, 26, 35, 19, 12]}) #view DataFrame print (df) team position points 0 A Guard 11 1 A Guard 18 2 A Forward 10 3 A Forward 22 4 B Guard 26 5 B Guard 35 6 B Forward 19 7 B Forward 12
المثال 1: تصفية حيث تساوي الأعمدة المتعددة قيمًا محددة
يمكننا استخدام بناء الجملة التالي لتصفية DataFrame ليحتوي فقط على الصفوف التي يساوي فيها عمود الفريق “A” وعمود الموضع “Guard”.
#filter rows where team column is 'A' and position column is 'Guard' df = df[df[[' team ', ' position ']]. isin ([' A ',' Guard ']). all (axis= 1 )] #view filtered DataFrame print (df) team position points 0 A Guard 11 1 A Guard 18
لاحظ أن الصفوف التي يساوي عمود الفريق فيها “A” وعمود الموضع يساوي “Guard” فقط هي التي تبقى في DataFrame التي تمت تصفيتها.
المثال 2: قم بالتصفية حيث يساوي عمود واحد على الأقل قيمة محددة
يمكننا استخدام بناء الجملة التالي لتصفية DataFrame ليحتوي فقط على الصفوف التي يساوي عمود الفريق فيها “A” أو عمود الموضع يساوي “Guard”.
#filter rows where team column is 'A' or position column is 'Guard' df = df[df[[' team ', ' position ']]. isin ([' A ',' Guard ']). any (axis= 1 )] #view filtered DataFrame print (df) team position points 0 A Guard 11 1 A Guard 18 2 A Forward 10 3 A Forward 22 4 B Guard 26 5 B Guard 35
لاحظ أن الصفوف التي يساوي فيها عمود الفريق “A” أو عمود الموضع الذي يساوي “Guard” هي فقط التي تبقى في DataFrame التي تمت تصفيتها.
ملاحظة : يمكنك العثور على الوثائق الكاملة لوظيفة pandas isin() هنا .
مصادر إضافية
تشرح البرامج التعليمية التالية كيفية تنفيذ المهام الشائعة الأخرى في الباندا:
الباندا: كيفية إضافة مرشح إلى الجدول المحوري
الباندا: كيفية تصفية “لا يحتوي”
الباندا: كيفية تصفية الصفوف التي تحتوي على سلسلة محددة