كيفية تصفية pandas dataframe بشروط متعددة


في كثير من الأحيان قد ترغب في تصفية DataFrame الباندا بشروط متعددة. لحسن الحظ، من السهل القيام بذلك باستخدام العمليات المنطقية.

يقدم هذا البرنامج التعليمي عدة أمثلة حول كيفية تصفية وحدات DataFrame الباندا التالية وفقًا لعدة شروط:

 import pandas as pd

#createDataFrame
df = pd.DataFrame({'team': ['A', 'A', 'B', 'B', 'C'],
                   'points': [25, 12, 15, 14, 19],
                   'assists': [5, 7, 7, 9, 12],
                   'rebounds': [11, 8, 10, 6, 6]})

#view DataFrame 
df

        team points assists rebounds
0 to 25 5 11
1 to 12 7 8
2 B 15 7 10
3 B 14 9 6
4 C 19 12 6

مثال 1: التصفية حسب شروط متعددة باستخدام “و”

يوضح التعليمة البرمجية التالية كيفية تصفية DataFrame باستخدام عامل التشغيل و ( & ):

 #return only rows where points is greater than 13 and assists is greater than 7
df[(df. points > 13) & (df. assists > 7)]

        team points assists rebounds
3 B 14 9 6
4 C 19 12 6

#return only rows where team is 'A' and points is greater than or equal to 15
df[(df. team == 'A') & (df. points >= 15)]


        team points assists rebounds
0 to 25 5 11

المثال 2: التصفية حسب شروط متعددة باستخدام “Or”

يوضح التعليمة البرمجية التالية كيفية تصفية DataFrame باستخدام عامل التشغيل أو ( | ):

 #return only rows where points is greater than 13 or assists is greater than 7
df[(df. dots > 13) | (df. assists > 7)]


        team points assists rebounds
0 to 25 5 11
2 B 15 7 10
3 B 14 9 6
4 C 19 12 6

#return only rows where team is 'A' or points is greater than or equal to 15
df[( df.team == 'A') | (df. points >= 15)]

        team points assists rebounds
0 to 25 5 11
1 to 12 7 8
2 B 15 7 10
4 C 19 12 6

المثال 3: التصفية حسب شروط متعددة باستخدام قائمة

يوضح التعليمة البرمجية التالية كيفية تصفية DataFrame حيث توجد قيم الصفوف في القائمة.

 #define a list of values
filter_list = [12, 14, 15]

#return only rows where points is in the list of values
df[df. points . isin (filter_list)]

	team points assists rebounds
1 to 12 7 8
2 B 15 7 10
3 B 14 9 6

#define another list of values
filter_list2 = ['A', 'C']

#return only rows where team is in the list of values
df[df. team . isin (filter_list2)]


        team points assists rebounds
0 to 25 5 11
1 to 12 7 8
4 C 19 12 6

يمكنك العثور على المزيد من دروس الباندا هنا .

Add a Comment

ایمئیل یایینلانمایاجاق ایسته‎نیله‎ن بوشلوقلار خاللانمیشدیر *