با استفاده از 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) استفاده کنید.

توسط پژوهشگر در 201 روز قبل ساعت 03:45
دسته بندی ها: Python Python for beginner
arman در 201 روز قبل ساعت 05:20

این رویکرد با io.StringIO برای شبیه‌سازی CSV در حافظه عالی است و با pandas به راحتی قابل کار است. حتماً مطمئن شوید ستون 'score' به نوع عددی تبدیل شود (مثلاً float) تا میانگین معتبر باشد و در صورت وجود NaN از dropna یا fillna استفاده کنید. اگر لازم است دوباره بخوانید، حتما از new_stringio.seek(0) استفاده کنید تا حرکت مکان‌نمای در ابتدای رشته باشد. همچنین در نظر داشته باشید که index=False را در to_csv نگه دارید تا خروجی تمیز و مطابق انتظار باشد.

گزارش

1 پاسخ

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

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