Menu
CoddyTech
flag Ar iconالعربيةdown icon

ترتيب القيم

جزء من قسم البيانات والرسوم البيانية في رحلة Machine Learning على Coddy. الدرس 39 من 60.

من سجّل أكبر عدد من النقاط؟ يجيب الفرز عن ذلك بنظرة سريعة. .sort_values("col") يرتّب الصفوف حسب عمود، بدءًا من الأصغر؛ ويضع ascending=False الأكبر أولًا:

جدول اللاعبين بترتيبه الأصلي على اليسار، وبعد سهم، مرتّبًا حسب النقاط من 31 تنازليًا إلى 8 على اليمين؛ يحتفظ كل صف بتسميته، ويُشار إلى أول لاعبين، Ben وDee، باستخدام head(2)

players = pd.DataFrame({
    "player": ["Ada", "Ben", "Cy", "Dee", "Eli"],
    "points": [14, 31, 8, 22, 17],
})
top = players.sort_values("points", ascending=False)
print(top.head(2))

يطبع هذا أفضل 2:

  player  points
1    Ben      31
3    Dee      22

احتفظت الصفوف بتسمياتها: يحتفظ Ben بالتسمية 1. لذا فإن الصف الأول من top هو top.iloc[0]، بينما يظل top.loc[0] هو Ada.

تعيد sort_values جدولًا جديدًا وتُبقي players كما كان، لذا احفظ النتيجة في متغير.

challenge icon

التحدي

متوسط

يعرض متجر تطبيقات التطبيقات في apps.csv، مع الأعمدة app وdownloads_k (بالآلاف) وrating. يقرأ البرنامج اسم عمود ورقمًا n، ثم يُفترض أن يطبع:

  1. الصفوف n التي تحتوي على أكبر القيم في ذلك العمود، بدءًا من الأكبر.
  2. Lowest: والتطبيق الذي لديه أصغر قيمة.

يحتوي البرنامج المبدئي على خطأين في الترتيب. أصلحهما كليهما. لمتجر مختلف، عندما تكون قيمة rating وn = 2:

       app  downloads_k  rating
2   PetPal           88     4.9
0  Zipline          512     4.5
Lowest: Mosaic

جرّب بنفسك

import pandas as pd

apps = pd.read_csv("apps.csv")
column = input()
n = int(input())

# يطبع هذا الكود إجابات خاطئة: أصلحه
apps.sort_values(column, ascending=False)
print(apps.head(n))
lowest = apps.sort_values(column, ascending=False)
print(f"Lowest: {lowest.iloc[0]['app']}")
quiz iconاختبر نفسك

يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.

جميع دروس البيانات والرسوم البيانية

تدرّب بنفسك: مترجم Python عبر الإنترنت