الباندا: كيفية استخدام apply وlambda معًا
يمكنك استخدام بناء الجملة الأساسي التالي لتطبيق دالة lambda على pandas DataFrame:
df[' col '] = df[' col ']. apply ( lambda x: ' value1 ' if x < 20 else ' value2 ')
توضح الأمثلة التالية كيفية استخدام بناء الجملة هذا عمليًا مع الباندا DataFrame التالية:
import pandas as pd #createDataFrame df = pd. DataFrame ({' team ': ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H'], ' points ': [18, 22, 19, 14, 14, 11, 20, 28], ' assists ': [5, 7, 7, 9, 12, 9, 9, 4]}) #view DataFrame print (df) team points assists 0 to 18 5 1 B 22 7 2 C 19 7 3 D 14 9 4 E 14 12 5 F 11 9 6 G 20 9 7:28 a.m. 4
المثال 1: استخدم Apply وLambda لإنشاء عمود جديد
يوضح التعليمة البرمجية التالية كيفية استخدام تطبيق و lambda لإنشاء عمود جديد تعتمد قيمه على قيم عمود موجود:
#create new column called 'status'
df[' status '] = df[' points ']. apply ( lambda x: ' Bad ' if x < 20 else ' Good ')
#view updated DataFrame
print (df)
team points assists status
0 A 18 5 Bad
1 B 22 7 Good
2 C 19 7 Bad
3 D 14 9 Bad
4 E 14 12 Bad
5 F 11 9 Bad
6 G 20 9 Good
7:28 4 Good
في هذا المثال، قمنا بإنشاء عمود جديد يسمى الحالة والذي يأخذ القيم التالية:
- ” سيئ ” إذا كانت القيمة في عمود النقاط أقل من 20.
- ” جيد ” إذا كانت القيمة في عمود النقاط أكبر من أو تساوي 20.
المثال 2: استخدم Apply وLambda لتعديل عمود موجود
يوضح التعليمة البرمجية التالية كيفية استخدام تطبيق و lambda لتعديل عمود موجود في DataFrame:
#modify existing 'points' column
df[' points '] = df[' points ']. apply ( lambda x: x/2 if x < 20 else x*2)
#view updated DataFrame
print (df)
team points assists
0 to 9.0 5
1 B 44.0 7
2 C 9.5 7
3D 7.0 9
4 E 7.0 12
5 F 5.5 9
6 G 40.0 9
7 A.M. 56.0 4
في هذا المثال، نقوم بتعديل قيم عمود النقطة الموجود باستخدام القاعدة التالية في دالة لامدا:
- إذا كانت القيمة أقل من 20، قم بتقسيم القيمة على 2.
- إذا كانت القيمة أكبر من أو تساوي 20، فاضرب القيمة في 2.
باستخدام دالة لامدا هذه، تمكنا من تعديل قيم عمود النقاط الموجود.
مصادر إضافية
تشرح البرامج التعليمية التالية كيفية أداء الوظائف الشائعة الأخرى في الباندا:
كيفية تطبيق وظيفة على Pandas Groupby
كيفية ملء NaN بقيم من عمود آخر في Pandas