"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > كيفية استبدال قيم محددة في عمود Pandas DataFrame بناءً على الشروط؟

كيفية استبدال قيم محددة في عمود Pandas DataFrame بناءً على الشروط؟

تم النشر بتاريخ 2024-11-06
تصفح:457

How to Replace Specific Values in a Pandas DataFrame Column Based on Conditions?

إطار بيانات Pandas: استبدال القيمة المستهدفة بناءً على الشروط

في Pandas، غالبًا ما يكون من الضروري تعديل قيم محددة داخل DataFrame بناءً على معايير معينة . في حين أن النهج الشائع هو استخدام loc لتحديد الصفوف، فمن الضروري فهم كيفية استهداف عمود معين بدقة لتعديل القيمة.

خذ في الاعتبار DataFrame التالي، حيث نرغب في استبدال القيم في "الموسم الأول" العمود الذي يتجاوز 1990 مع العدد الصحيح 1:

                 Team  First Season  Total Games
0      Dallas Cowboys          1960          894
1       Chicago Bears          1920         1357
2   Green Bay Packers          1921         1339
3      Miami Dolphins          1966          792
4    Baltimore Ravens          1996          326
5  San Franciso 49ers          1950         1003

أدت المحاولة الأولية باستخدام وظيفة loc فقط إلى استبدال جميع القيم في الصفوف المحددة بدلاً من العمود المستهدف فقط. لتصحيح هذا، نحتاج إلى تحديد عمود "الموسم الأول" بشكل صريح باعتباره الوسيط الثاني لـ loc:

df.loc[df['First Season'] > 1990, 'First Season'] = 1
df.loc[df['First Season'] > 1990, 'First Season'] = 1
يضمن هذا النهج المستهدف أن القيم الموجودة في عمود "الموسم الأول" فقط هي التي تستوفي الشرط ويتم استبدالها بـ 1، مع ترك الأعمدة الأخرى غير متأثرة.

إجمالي ألعاب الموسم الأول للفريق 0 دالاس كاوبويز 1960 894 1 شيكاغو بيرز 1920 1357 2 جرين باي باكرز 1921 1339 3 ميامي دولفينز 1966 792 4 بالتيمور رافينز 1326 5 San Franciso 49ers 1950 1003
df.loc[df['First Season'] > 1990, 'First Season'] = 1
بدلاً من ذلك، إذا كانت النتيجة المطلوبة هي مؤشر منطقي، فيمكنك استخدام الشرط لإنشاء سلسلة منطقية وتحويلها إلى أعداد صحيحة، حيث تترجم True وFalse إلى 1 و0 على التوالي. :

df['First Season'] = (df['First Season'] > 1990).astype(int)
df.loc[df['First Season'] > 1990, 'First Season'] = 1
ينتج عن هذا الأسلوب DataFrame بقيم محدثة:

إجمالي ألعاب الموسم الأول للفريق 0 دالاس كاوبويز 0894 1 شيكاغو بيرز 0 1357 2 جرين باي باكرز 0 1339 3 ميامي دولفينز 0792 4 بالتيمور رافينز 1326 5 سان فرانسيسكو 49ers 0 1003
            
أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3