پایپ‌لاین تحلیل داده مهندسی با Python و pandas

آموزش ساخت جریان قابل تکرار برای خواندن، کنترل، پاک‌سازی، تحلیل و ذخیره داده مهندسی با Python و pandas.

زمان مطالعه: ۱۷ دقیقه انتشار: آگوست 9, 2026 نویسنده: admin
مدل‌سازی سه‌بعدی، مش‌بندی و تحلیل محاسباتی مهندسی
هدف این آموزش

تبدیل فایل خام آزمایش یا شبیه‌سازی به داده پاک، شاخص‌های کنترل‌شده و خروجی قابل بازتولید.

مزیت 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')

پاک‌سازی و محاسبه را به تابع تبدیل کنید

تابع باید ورودی و خروجی روشن داشته و تا حد ممکن به متغیر سراسری وابسته نباشد. قواعد پاک‌سازی مانند بازه مجاز یا روش جایگزینی مقدار گمشده به‌صورت پارامتر تعریف شوند.

برای هر تبدیل مهم، یک داده کوچک با پاسخ معلوم بسازید. آزمون ساده نشان می‌دهد تغییر بعدی کد، نتیجه قبلی را ناخواسته خراب نکرده است.

  1. قواعد کیفیت را تعریف و گزارش اولیه تولید کنید.
  2. تبدیل واحد و پاک‌سازی را در تابع جدا اجرا کنید.
  3. شاخص‌ها را با نام و واحد روشن محاسبه کنید.
  4. خروجی و گزارش تعداد رکوردهای حذف‌شده را ذخیره کنید.
مثال اجرایی: برای آزمون کشش، کرنش باید از طول مبنا و نیرو از سطح اولیه به تنش تبدیل شود. ثبت واحد و پارامترهای نمونه کنار خروجی، مقایسه آزمایش‌ها را معتبر می‌کند.

خروجی را برای انسان و ماشین آماده کنید

جدول نهایی را با نام ستون و واحد روشن در CSV یا Parquet ذخیره کنید. نمودار باید عنوان، محور، واحد و راهنما داشته باشد. پارامترهای تحلیل و زمان اجرا را در فایل JSON یا متن همراه ثبت کنید.

Notebook برای اکتشاف مفید است، اما منطق نهایی بهتر است در ماژول و تابع قرار گیرد. این جداسازی اجرای خودکار و آزمون را ساده‌تر می‌کند.

نکته مهم: حذف خودکار داده پرت بدون مشاهده و دلیل فنی می‌تواند پدیده واقعی را پاک کند. ابتدا علامت‌گذاری و گزارش کنید، سپس اثر حذف را در تحلیل حساسیت بسنجید.
چک‌لیست اجرا

  • داده خام تغییر نمی‌کند و مسیرها نسبی هستند.
  • ساختار و بازه ورودی پیش از تحلیل کنترل می‌شود.
  • قواعد پاک‌سازی و تبدیل واحد در کد ثبت شده‌اند.
  • خروجی شامل داده، نمودار و پارامترهای اجرای تحلیل است.

پرسش‌های رایج

pandas برای چه حجمی مناسب است؟

برای داده‌ای که در حافظه جا می‌شود بسیار مناسب است. برای حجم بزرگ‌تر می‌توان پردازش قطعه‌ای، پایگاه داده یا ابزارهای توزیع‌شده را بررسی کرد.

Notebook یا فایل py؟

Notebook برای کشف و ارائه مناسب است؛ کد پایدار و تکرارشونده بهتر است در فایل‌های py و تابع‌های آزمون‌پذیر قرار گیرد.

جمع‌بندی: پایپ‌لاین خوب، تحلیل را از مجموعه کلیک‌ها و دستورهای موقت به فرایندی شفاف و قابل تکرار تبدیل می‌کند. کنترل ورودی و ثبت تصمیم‌ها بخش اصلی کیفیت نتیجه است.
پایان آموزش

این مطلب را می‌توانید ذخیره کنید و برای تمرین دوباره به آن برگردید.

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *