مزیت Python در تحلیل مهندسی فقط سرعت محاسبه نیست؛ میتوان همه تصمیمهای پردازش را در کد ثبت و تحلیل را برای فایلهای بعدی تکرار کرد. پایپلاین خوب ورودی را اعتبارسنجی میکند، تغییرات داده را ثبت میکند و خروجی را با ساختار مشخص تحویل میدهد.
در پایان چه چیزی به دست میآورید؟
- ساخت پروژه با ورودی خام، کد و خروجی جدا.
- اعتبارسنجی ستون، نوع داده، واحد و مقادیر گمشده.
- نوشتن تابعهای کوچک، آزمونپذیر و قابل استفاده مجدد.
ساختار پروژه را قابل انتقال بسازید
فایل خام را در پوشه data/raw نگه دارید و خروجی پردازششده را در data/processed بنویسید. کد در src و نمودار و جدول نهایی در results قرار گیرد. مسیرها با pathlib و نسبت به ریشه پروژه ساخته شوند.
محیط اجرا و وابستگیها را در requirements یا ابزار مدیریت محیط ثبت کنید. نسخهگذاری کد بدون ثبت نسخه کتابخانهها برای بازتولید بلندمدت کافی نیست.
from pathlib import Path
import pandas as pd
ROOT = Path(__file__).resolve().parents[1]
raw = pd.read_csv(ROOT / 'data' / 'raw' / 'test.csv')
print(raw.info())
ورودی را پیش از تحلیل اعتبارسنجی کنید
نام ستونهای الزامی، نوع داده و بازه فیزیکی را کنترل کنید. اگر واحد در نام یا فایل جداگانه مشخص نشده، پیش از ادامه ابهام را رفع کنید. تبدیل خطاهای متنی به NaN بدون گزارش میتواند داده معیوب را پنهان کند.
تعداد سطر، داده گمشده، رکورد تکراری و ترتیب زمان را در یک گزارش کیفیت ثبت کنید. هر حذف باید قاعده و شمارش مشخص داشته باشد.
required = {'time_s', 'force_N'}
missing = required - set(raw.columns)
if missing:
raise ValueError(f'Missing columns: {sorted(missing)}')
if not raw['time_s'].is_monotonic_increasing:
raise ValueError('Time must be increasing')
پاکسازی و محاسبه را به تابع تبدیل کنید
تابع باید ورودی و خروجی روشن داشته و تا حد ممکن به متغیر سراسری وابسته نباشد. قواعد پاکسازی مانند بازه مجاز یا روش جایگزینی مقدار گمشده بهصورت پارامتر تعریف شوند.
برای هر تبدیل مهم، یک داده کوچک با پاسخ معلوم بسازید. آزمون ساده نشان میدهد تغییر بعدی کد، نتیجه قبلی را ناخواسته خراب نکرده است.
- قواعد کیفیت را تعریف و گزارش اولیه تولید کنید.
- تبدیل واحد و پاکسازی را در تابع جدا اجرا کنید.
- شاخصها را با نام و واحد روشن محاسبه کنید.
- خروجی و گزارش تعداد رکوردهای حذفشده را ذخیره کنید.
خروجی را برای انسان و ماشین آماده کنید
جدول نهایی را با نام ستون و واحد روشن در CSV یا Parquet ذخیره کنید. نمودار باید عنوان، محور، واحد و راهنما داشته باشد. پارامترهای تحلیل و زمان اجرا را در فایل JSON یا متن همراه ثبت کنید.
Notebook برای اکتشاف مفید است، اما منطق نهایی بهتر است در ماژول و تابع قرار گیرد. این جداسازی اجرای خودکار و آزمون را سادهتر میکند.
- داده خام تغییر نمیکند و مسیرها نسبی هستند.
- ساختار و بازه ورودی پیش از تحلیل کنترل میشود.
- قواعد پاکسازی و تبدیل واحد در کد ثبت شدهاند.
- خروجی شامل داده، نمودار و پارامترهای اجرای تحلیل است.
پرسشهای رایج
pandas برای چه حجمی مناسب است؟
برای دادهای که در حافظه جا میشود بسیار مناسب است. برای حجم بزرگتر میتوان پردازش قطعهای، پایگاه داده یا ابزارهای توزیعشده را بررسی کرد.
Notebook یا فایل py؟
Notebook برای کشف و ارائه مناسب است؛ کد پایدار و تکرارشونده بهتر است در فایلهای py و تابعهای آزمونپذیر قرار گیرد.