یک تابع پایتون بنویسید که یک شی BytesIO حاوی فایل CSV را دریافت کند، میانگین یک ستون عددی با نام مشخص را محاسبه کند و نتیجه را به‌صورت یک فایل CSV جدید در یک شی BytesIO بازگرداند

0.0 بازدید آخرین ویرایش در 220 روز قبل ساعت 01:51

0.0

برای حل این مسئله از ماژول io.BytesIO برای خواندن و نوشتن در حافظه و از pandas برای پردازش داده‌ها استفاده کنید: ورودی را (در صورت نیاز) با seek(0) به pandas.read_csv بدهید، ستون عددی را به عددی تبدیل کنید و با df[col].mean() میانگین را محاسبه نمایید؛ سپس یک DataFrame کوچک شامل نام ستون و مقدار میانگین بسازید و با to_csv آن را در شی BytesIO خروجی بنویسید و قبل از بازگرداندن خروجی دوباره seek(0) را فراخوانی کنید. نکات: دقت کنید که بین بایت‌ها و رشته‌ها تفاوت وجود دارد (تنظیم encoding هنگام نوشتن/خواندن)، و بهتر است ورودی‌های خالی یا مقادیر غیرعددی را با pd.to_numeric(errors='coerce') مدیریت کنید.

توسط پژوهشگر در 220 روز قبل ساعت 01:51
دسته بندی ها: Python Python for beginner
arash در 220 روز قبل ساعت 11:46

وقتی با BytesIO کار می‌کنید، حتماً قبل از هر خواندن یا نوشتن دوباره موقعیت فایلتان را با seek(0) بازنشانی کنید تا pandas بتواند داده‌ها را درست بخواند. برای پایداری ورودی از pd.to_numeric(..., errors='coerce') استفاده کنید تا مقادیر غیرعددی یا خالی به NaN تبدیل شوند و سپس از df[col].mean(skipna=True) میانگین را محاسبه کنید. خروجی CSV را در یک BytesIO جدید بنویسید، با encoding مناسب مانند 'utf-8' و در نهایت دوباره به موقعیت آغازین با seek(0) بازگردانید. اگر نام ستون مشخص نداشت یا داده‌های کافی برای محاسبه وجود نداشت، ارائه یک پیام خطای روشن یا مدیریت حالت خالی می‌تواند مفید باشد.

گزارش

1 پاسخ

جدید ترین قدیمی ترین بالاترین امتیاز پاسخ های من

در حال بارگیری...
ورود به حساب کاربری