Python · از صفر

گزارش دسته‌های هزینه با Pandas

تمرین مرحلهٔ 24: ساخت جدول و تجمیع مبلغ بر اساس دسته؛ بدون نیاز به یادگیری ماشین و با ارزیابی واقعی خروجی.

۶۶ دقیقه · ۱۴۰ XP · Pandas · DataFrame · groupby

هدف و راهنمای انجام

ساخت جدول و تجمیع مبلغ بر اساس دسته

ورودی

request.json: rows: لیست category رشته‌ای و amount عددی غیرمنفی بدون مقدار گمشده. لیست خالی: total=0 و by_category خالی.

خروجی

result.json مطابق ساختار مثال؛ تمام کلیدهای نشان‌داده‌شده الزامی هستند.

  1. مقالهٔ پیش‌نیاز را بخوانید و نمونه‌کد آن را جدا اجرا کنید.
  2. از rows یک DataFrame با ستون‌های category و amount می‌سازیم. groupby بر اساس دسته، سطرهای هم‌نام را کنار هم قرار می‌دهد و sum مبلغ هر گروه را جمع می‌کند. نتیجه ابتدا Series است و با to_dict به نگاشت قابل استفاده در JSON تبدیل می‌شود. مجموع کل از همان ستون amount به دست می‌آید؛ مقدارها در این قرارداد عددی و غیرگمشده‌اند.
  3. در main.py تابع solve(data) را تکمیل کنید؛ بخش خواندن request.json و نوشتن result.json را حفظ کنید.
  4. با ورودی نمونه و حالت‌های مرزیِ راهنما اجرا کنید؛ سپس ارزیابی را بزنید.

Python 3؛ دادهٔ ورودی طبق قرارداد است. تابع solve باید برای همهٔ ورودی‌ها کار کند، نه فقط مثال. کتابخانهٔ لازم: pandas؛ در میزکار سایت آماده است.

مثال ورودی و خروجی

{
    "input": {
        "rows": [
            {
                "category": "book",
                "amount": 10
            },
            {
                "category": "transport",
                "amount": 5
            },
            {
                "category": "book",
                "amount": 2
            }
        ]
    },
    "output": {
        "total": 17,
        "by_category": {
            "book": 12,
            "transport": 5
        }
    }
}

معیارهای موفقیت

  • ساختار و نوع خروجی با قرارداد برابر است.
  • محاسبه برای چند ورودی متفاوت و حالت‌های مرزی درست است.
  • اجرای ساده XP نمی‌دهد؛ فقط قبولی ارزیابی معتبر باعث ثبت تکمیل می‌شود.

کتابخانه‌ها: pandas

پیش‌نیاز و ترتیب یادگیری

  • محیط مجازی، pip و شروع NumPy از صفر
شروع Pandas؛ از دیکشنری تا DataFrame و groupby ←

برای شروع، مقالهٔ بالا را بخوانید. Python 3 و کتابخانه‌های موردنیاز در میزکار آماده‌اند؛ نصب آنلاین از ترمینال میزکار لازم نیست.

برای نوشتن و اجرای کد وارد شوید