الباندا: صيغة "إذا كانت القيمة في العمود إذن"
يمكنك استخدام بناء الجملة التالي في الباندا لتعيين قيم لعمود بناءً على قيم عمود آخر:
df[' new '] = df[' col ']. map ( lambda x: ' new1 ' if ' A ' in x else ' new2 ' if ' B ' in x else '')
سيؤدي بناء الجملة هذا إلى إنشاء عمود جديد يسمى “جديد” والذي سيأخذ القيم التالية:
- new1 إذا كانت القيمة في العمود تساوي A.
- new2 إذا كانت القيمة في العمود تساوي B.
- سلسلة فارغة إذا كانت القيمة في العمود تساوي أي قيمة أخرى.
يوضح المثال التالي كيفية استخدام بناء الجملة هذا عمليًا.
مثال: استخدام صيغة “إذا كانت القيمة في العمود إذن” في Pandas
لنفترض أن لدينا DataFrame الباندا التالية التي تحتوي على معلومات حول مختلف لاعبي كرة السلة:
import pandas as pd #createDataFrame df = pd. DataFrame ({' team ': ['A', 'A', 'A', 'A', 'B', 'B', 'C', 'C'], ' points ': [14, 22, 25, 34, 30, 12, 10, 18]}) #view DataFrame print (df) team points 0 to 14 1 to 22 2 to 25 3 to 34 4 B 30 5 B 12 6 C 10 7 C 18
لنفترض الآن أننا نريد إنشاء عمود جديد يسمى المدينة ، وتعتمد قيمه على القيمة المقابلة في عمود الفريق .
يمكننا استخدام بناء الجملة التالي للقيام بذلك:
#create new column called city whose values depend on values in team column
df[' city '] = df[' team ']. map ( lambda x: ' Atlanta ' if ' A ' in x else ' Boston ' if ' B ' in x else '')
#view updated DataFrame
print (df)
team points city
0 A 14 Atlanta
1 to 22 Atlanta
2 to 25 Atlanta
3 to 34 Atlanta
4 B 30 Boston
5 B 12 Boston
6 C 10
7 C 18
أنشأ بناء الجملة هذا عمودًا جديدًا يسمى المدينة والذي يأخذ القيم التالية:
- أتلانتا إذا كانت قيمة الفريق تساوي A.
- بوسطن إذا كانت قيمة الفريق تساوي B.
- سلسلة فارغة إذا كانت القيمة في الفريق تساوي أي قيمة أخرى.
لاحظ أننا في هذا المثال استخدمنا سلسلة فارغة بعد عبارة else الأخيرة لترك القيم التي لم تستوف أي شروط فارغة.
مصادر إضافية
تشرح البرامج التعليمية التالية كيفية تنفيذ العمليات الشائعة الأخرى في الباندا:
الباندا: احصل على فهرس الصفوف التي يتطابق عمودها مع القيمة
الباندا: كيفية اختيار الأعمدة التي تحتوي على سلسلة محددة
الباندا: كيفية التحقق مما إذا كان العمود يحتوي على سلسلة