الباندا: كيفية تحديث القيم في الصفوف


يمكنك استخدام بناء الجملة الأساسي التالي لتحديث القيم في pandas DataFrame أثناء استخدام iterrows :

 for i, row in df. iterrows ():
    points_add = 10
    if row[' points '] > 15:
        points_add = 50
    df. at [i,' points '] = points_add

يتكرر هذا المثال المحدد خلال كل صف من DataFrame ويقوم بتحديث القيمة الموجودة في عمود النقطة إلى 50 إذا كانت القيمة حاليًا أكبر من 15.

إذا كانت القيمة الحالية أقل من أو تساوي 15، يتم تحديث القيمة إلى 10 .

يوضح المثال التالي كيفية استخدام بناء الجملة هذا عمليًا.

مثال: تحديث القيم في Pandas DataFrame في الصفوف

لنفترض أن لدينا DataFrame الباندا التالي الذي يوضح عدد النقاط التي سجلها لاعبو كرة السلة المختلفون:

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' player ': ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I'],
                   ' points ': [10, 12, 14, 15, 15, 15, 16, 17, 20]})

#view DataFrame
print (df)

  player points
0 to 10
1 B 12
2 C 14
3 D 15
4 E 15
5 F 15
6 G 16
7:17 a.m.
8 I 20

لنفترض أننا نريد تحديث القيم في عمود النقاط باستخدام المنطق التالي:

  • إذا كانت النقاط أقل من أو تساوي 15، قم بتحديث القيمة لتصبح 10 .
  • إذا كانت النقاط أكبر من 15، قم بتحديث القيمة لتصبح 50 .

يمكننا استخدام الدالة iterrows للتكرار خلال كل صف من DataFrame وإجراء هذه التحديثات:

 #iterate over each row in DataFrame and update values in points column
for i, row in df. iterrows ():
    points_add = 10
    if row[' points '] > 15:
        points_add = 50
    df. at [i,' points '] = points_add

#view updated DataFrame
print (df)

  player points
0 to 10
1 B 10
2 C 10
3 D 10
4 E 10
5 F 10
6 G 50
7:50 a.m.
8 I 50

يمكننا أن نرى أنه تم تحديث القيم الموجودة في عمود النقاط وفقًا لذلك.

ملاحظة : يمكنك العثور على الوثائق الكاملة لوظيفة pandas iterrows() هنا .

مصادر إضافية

تشرح البرامج التعليمية التالية كيفية تنفيذ المهام الشائعة الأخرى في الباندا:

الباندا: كيفية التنقل بين الأعمدة
الباندا: كيفية اختيار الصفوف بين قيمتين
الباندا: تحديث قيم الأعمدة بناءً على DataFrame آخر

Add a Comment

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