الباندا: كيفية إزالة التكرارات مع الحفاظ على الصف بالقيمة القصوى


يمكنك استخدام الطرق التالية لإزالة التكرارات في pandas DataFrame مع الاحتفاظ بالصف الذي يحتوي على الحد الأقصى للقيمة في عمود معين:

الطريقة الأولى: إزالة التكرارات في عمود والاحتفاظ بالصف بحد أقصى

 df. sort_values (' var2 ', ascending= False ). drop_duplicates (' var1 '). sort_index ()

الطريقة الثانية: إزالة التكرارات في أعمدة متعددة والاحتفاظ بالصف بحد أقصى

 df. sort_values (' var3 ', ascending= False ). drop_duplicates ([' var1 ', ' var2 ']). sort_index ()

توضح الأمثلة التالية كيفية استخدام كل طريقة عمليًا.

مثال 1: إزالة التكرارات في عمود والاحتفاظ بالصف الذي يحتوي على الحد الأقصى

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

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' team ': ['A', 'A', 'A', 'B', 'B', 'B', 'C', 'C', 'C'],
                   ' points ': [20, 24, 28, 30, 14, 19, 29, 40, 22]})

#view DataFrame
print (df)

  team points
0 to 20
1 to 24
2 to 28
3 B 30
4 B 14
5 B 19
6 C 29
7 C 40
8 C 22

يمكننا استخدام بناء الجملة التالي لإزالة الصفوف ذات أسماء الفرق المكررة مع الاحتفاظ بالصفوف ذات القيم القصوى للنقاط :

 #drop duplicate teams but keeps row with max points
df_new = df. sort_values (' points ', ascending= False ). drop_duplicates (' team '). sort_index ()

#view DataFrame
print (df_new)

  team points
2 to 28
3 B 30
7 C 40

تمت إزالة كل صف يحتوي على اسم فريق مكرر، ولكن تم الاحتفاظ بالصفوف ذات الحد الأقصى لقيمة النقاط لكل فريق .

المثال 2: إزالة التكرارات في أعمدة متعددة والاحتفاظ بالصف بحد أقصى

لنفترض أن لدينا DataFrame الباندا التالية:

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' team ': ['A', 'A', 'A', 'B', 'B', 'B', 'C', 'C', 'C'],
                   ' position ': ['G', 'G', 'F', 'G', 'F', 'F', 'G', 'G', 'F'],
                   ' points ': [20, 24, 28, 30, 14, 19, 29, 40, 22]})

#view DataFrame
print (df)

  team position points
0 AG 20
1 GA 24
2AF 28
3 BG 30
4 BF 14
5 BF 19
6 GC 29
7 GC 40
8 CF 22

يمكننا استخدام الصيغة التالية لإزالة الصفوف ذات أسماء الفريق والمناصب المكررة، مع الاحتفاظ بالصفوف ذات القيم القصوى للنقاط :

 #drop rows with duplicate team and positions but keeps row with max points
df_new = df. sort_values (' points ', ascending= False ). drop_duplicates ([' team ',' position ']). sort_index ()

#view DataFrame
print (df_new)

  team position points
1 GA 24
2AF 28
3 BG 30
5 BF 19
7 GC 40
8 CF 22

تمت إزالة كل صف يحتوي على اسم فريق وموقع مكرر، ولكن تم الاحتفاظ بالصفوف التي تحتوي على الحد الأقصى لقيمة النقاط لكل مجموعة فريق وموقع.

مصادر إضافية

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

كيفية إزالة الصفوف المكررة في الباندا
كيفية إزالة الأعمدة المكررة في الباندا
كيفية حساب التكرارات في الباندا

Add a Comment

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