سوال دو


سوال ۲: پیش‌پردازش داده‌ها (Preprocessing)

داستان🔗

تیم شما وارد مرحله‌ای جدید شده است! پس از تحلیل اولیه داده‌های کندل‌استیک سهام TechX، متوجه شده‌اید که داده‌های دریافتی به‌طور کامل منظم و پاک نیستند. ممکن است برخی سطرها شامل مقادیر خالی (Null) باشند، یا ستون‌هایی دارای داده‌های ناسازگار و یا فرمت‌های نادرست به‌ویژه در ستون تاریخ باشند. این مشکل می‌تواند روند تحلیل‌های بعدی و مدل‌های پیش‌بینی شما را تحت‌الشعاع قرار دهد. برای حل این مسئله، تیم شما تصمیم گرفته که داده‌ها را پیش‌پردازش کند؛ یعنی:

  • سطرهایی که شامل مقادیر خالی در ستون‌های ضروری (Date, Open, High, Low, Close) هستند حذف شوند.
  • تاریخ‌ها به فرمت صحیح (DateTime) تبدیل شوند.
  • داده‌ها بر اساس تاریخ مرتب شوند تا روند تغییرات به‌درستی قابل بررسی باشد.

وظیفه شما کمک به تیم است تا داده‌ها را تمیز کرده و در قالبی منظم برای تحلیل‌های پیشرفته‌تر آماده کند.

فرمت ورودی🔗

ورودی شامل چندین سطر است که هر سطر دارای ۵ فیلد به ترتیب زیر است:

Date, Open, High, Low, Close
Plain text

ممکن است برخی از فیلدها خالی (یا حاوی رشته‌ای خالی) باشند. در ابتدا از کاربر درخواست می‌شود که تعداد سطرهایی که می‌خواهد وارد کند را اعلام نماید. سپس به تعداد همان سطر از کاربر داده گرفته می‌شود.

فرمت خروجی🔗

خروجی باید شامل سطر عنوان (header) و سپس تمامی سطرهای پاک‌شده و مرتب شده (بر اساس تاریخ به صورت صعودی) باشد. هر سطر به‌صورت یک خط چاپ شود.

مثال‌ها🔗

ورودی نمونه🔗

در ابتدا از کاربر خواسته می‌شود که تعداد سطرها را وارد کند:

4
Plain text

سپس ۴ سطر داده به شکل زیر وارد می‌شود:

2025-01-03,100,105,95,100
2025-01-01,100,110,90,105
2025-01-02,105,115,,100
2025-01-04,110,120,100,115
Plain text

خروجی نمونه🔗

2025-01-01,100,110,90,105
2025-01-03,100,105,95,100
2025-01-04,110,120,100,115
Plain text

توضیح🔗

سطر سوم (با تاریخ 2025-01-02) به دلیل داشتن مقدار خالی در ستون Low حذف شده است. سطرهای باقی‌مانده بر اساس تاریخ به ترتیب صعودی (2025-01-01، 2025-01-03، 2025-01-04) مرتب شده‌اند.

نکات🔗

  • مقادیر خالی در هر ستون ضروری مانند تاریخ، قیمت باز، قیمت بالا، قیمت پایین و قیمت بسته باید حذف شوند.
  • فرمت تاریخ باید به فرمت صحیح DateTime تبدیل شود.
  • داده‌ها باید بر اساس تاریخ به صورت صعودی مرتب شوند.