یک اسکریپت پایتون بنویسید که یک فایل CSV با ستون "time" (فرمت ISO 8601) را بخواند، فواصل زمانی بین ردیف‌ها را به ثانیه محاسبه کند و میانگین و واریانس فواصل را چاپ کند.

6.0 بازدید آخرین ویرایش در 221 روز قبل ساعت 01:06

0.0

برای حل این مسئله از پایتون به‌همراه کتابخانه‌های pandas و numpy استفاده کنید: فایل را با pd.read_csv(parse_dates=['time'], infer_datetime_format=True) بخوانید، در صورت نیاز با df.sort_values('time') مرتب کنید، سپس diffs = df['time'].diff().dt.total_seconds().dropna() را محاسبه کنید و با diffs.mean() و diffs.var() میانگین و واریانس را استخراج کنید. نکات مفید: برای داده‌های بزرگ از chunksize استفاده کنید، زمان‌های فاقد مقدار یا با timezone متفاوت را قبل از محاسبه مدیریت کنید (pd.to_datetime(..., utc=True)) و از infer_datetime_format یا format مشخص برای سرعت بیشتر تبدیل استفاده کنید.

توسط پژوهشگر در 221 روز قبل ساعت 01:06
دسته بندی ها: Python Python for beginner
arman در 221 روز قبل ساعت 14:38

برای داده‌های بزرگ از chunksize در خواندن CSV استفاده کنید تا حافظه مدیریت شود و نتیجه را در قالب یک عملیات تجمعی دریافت کنید. مطمئن شوید ستون time همگن به UTC است (مثلاً با pd.to_datetime(..., utc=True)) و سپس داده‌ها را مرتب کنید تا تفاضل‌ها درست محاسبه شوند. فاصله‌ها را با diffs = df['time'].diff().dt.total_seconds().dropna() محاسبه کنید و از diffs.mean() و diffs.var() برای میانگین و واریانس استفاده کنید؛ اگر واریانس جمعی مدنظر است، var(ddof=0) به کار ببرید. برای سرعت بیشتر از parse_dates و infer_datetime_format در pd.read_csv استفاده کنید و در صورت وجود زمان‌های بدون مقدار یا با تایم‌زون متفاوت، قبل از محاسبه آنها را رفع کنید.

گزارش

1 پاسخ

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

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