با استفاده از io.StringIO یک رشته CSV شبیهسازی کنید، آن را با pandas بخوانید، میانگین ستون "score" را محاسبه کنید و تنها ردیفهایی که score آنها بزرگتر یا مساوی میانگین است را در یک StringIO جدید بنویسید.
5.0 بازدید آخرین ویرایش در 201 روز قبل ساعت 03:45 0.0
برای حل، از io.StringIO برای ساختن و مدیریت متن CSV در حافظه استفاده کنید و با pandas.read_csv آن را به DataFrame تبدیل کنید؛ سپس با df['score'].mean() میانگین را محاسبه و با شرطگذاری (df[df['score'] >= mean]) ردیفها را فیلتر کنید؛ نتیجه را با df.to_csv(new_stringio, index=False) در یک StringIO جدید ذخیره کنید. نکات: اگر از ماژول csv استفاده میکنید هم میتوان با csv.reader/csv.DictReader و csv.writer کار کرد، و هنگام خواندن مجدد محتوای StringIO از seek(0) استفاده کنید.
1 پاسخ
جدید ترین قدیمی ترین بالاترین امتیاز پاسخ های من
در حال بارگیری...
برای ارسال پاسخ باید با حساب کاربری وارد شوید.
ورود به حساب کاربری
این رویکرد با io.StringIO برای شبیهسازی CSV در حافظه عالی است و با pandas به راحتی قابل کار است. حتماً مطمئن شوید ستون 'score' به نوع عددی تبدیل شود (مثلاً float) تا میانگین معتبر باشد و در صورت وجود NaN از dropna یا fillna استفاده کنید. اگر لازم است دوباره بخوانید، حتما از new_stringio.seek(0) استفاده کنید تا حرکت مکاننمای در ابتدای رشته باشد. همچنین در نظر داشته باشید که index=False را در to_csv نگه دارید تا خروجی تمیز و مطابق انتظار باشد.
گزارش