بررسی روش‌های مختلف دسترسی به دیتافرم در pandas

بررسی روش‌های مختلف دسترسی به دیتافرم در pandas
بررسی روش‌های مختلف دسترسی به دیتافرم در pandas

بررسی روش‌های مختلف دسترسی به دیتافرم در pandas

کتابخانه Pandas یکی از محبوب‌ترین ابزارها برای تحلیل داده‌ها در زبان Python است. قلب این کتابخانه، ساختار DataFrame است که امکان مدیریت و تحلیل داده‌ها را به شکل انعطاف‌پذیر و کارآمد فراهم می‌کند. یکی از ویژگی‌های کلیدی Pandas، روش‌های مختلف و قدرتمند دسترسی به داده‌هاست که در ادامه به‌صورت حرفه‌ای بررسی می‌کنیم.

۱) دسترسی به ستون‌ها

در DataFrame، ستون‌ها به‌عنوان Series‌هایی ذخیره می‌شوند که به‌راحتی می‌توانید به آن‌ها دسترسی داشته باشید:

برای دسترسی به یک ستون خاص، کافی است نام آن را به‌عنوان کلید استفاده کنید:

دسترسی به یک ستون
df['column_name']

اگر نام ستون با قواعد نام‌گذاری متغیرهای Python سازگار باشد، می‌توانید از این روش نیز استفاده کنید:

df.column_name
دسترسی به چند ستون

برای دسترسی همزمان به چند ستون، از یک لیست استفاده کنید:

df[['column1', 'column2']]

۲) دسترسی به سطرها

الف) دسترسی بر اساس موقعیت عددی با iloc

اگر بخواهید به سطر یا سلول خاصی بر اساس موقعیت عددی (ایندکس) دسترسی پیدا کنید، از iloc استفاده کنید:

df.iloc[0]       # اولین سطر
df.iloc[0:3]     # سطرهای ۰ تا ۲
df.iloc[0, 1]    # مقدار موجود در سطر اول و ستون دوم

ب) دسترسی بر اساس برچسب‌ها با loc

برای دسترسی به داده‌ها بر اساس برچسب (Label) سطرها یا ستون‌ها، روش loc مناسب است:

df.loc['row_label']           # دسترسی به یک سطر خاص
df.loc[:, 'column_name']      # دسترسی به یک ستون خاص
df.loc['row_label', 'column_name']  # دسترسی به مقدار خاص

پ) دسترسی بر اساس برچسب‌ها با loc

یکی از قدرتمندترین قابلیت‌های Pandas، فیلترگذاری سطرها با استفاده از شرط‌های منطقی است:

df[df['column_name'] > 10]  # نمایش سطرهایی که مقدار ستون بیشتر از ۱۰ باشد

ترکیب شرط‌ها نیز امکان‌پذیر است:

df[(df['col1'] > 10) & (df['col2'] < 20)]  #AND شرط 
df[(df['col1'] > 10) | (df['col2'] < 20)]  #OR شرط

۳) دسترسی به زیردیتافریم‌ها

برای دسترسی به بخشی خاص از DataFrame، می‌توانید از روش‌های زیر استفاده کنید:

استفاده از iloc و loc:

df.iloc[0:5, 1:3]  # سطرهای ۰ تا ۴ و ستون‌های ۱ و ۲
df.loc['row1':'row3', 'col1':'col3']  # بر اساس برچسب‌ها

استفاده از توابع خاص:

  • query برای اعمال فیلترها:
df.query('col1 > 10 and col2 < 20')
  • filter برای انتخاب ستون‌های خاص:
df.filter(items=['col1', 'col2'])

۴) دسترسی به مقادیر خاص

با استفاده از برچسب‌ها:

df.at['row_label', 'column_name']  # دسترسی سریع بر اساس برچسب

با استفاده از موقعیت عددی:

df.iat[0, 1]  # دسترسی سریع بر اساس موقعیت عددی

۵) مدیریت ایندکس‌ها

برای تحلیل بهتر داده‌ها، گاهی نیاز به تنظیم یا تغییر ایندکس‌ها دارید:

  • تنظیم یک ستون به‌عنوان ایندکس:
df.set_index('column_name', inplace=True)
  • ریست ایندکس به حالت پیش‌فرض:
df.reset_index(inplace=True)

مقایسه سرعت روش‌های مختلف دسترسی به داده‌ها در Pandas

یکی از فاکتورهای مهم در انتخاب روش دسترسی به داده‌ها در Pandas، سرعت اجرا است. در ادامه، عملکرد روش‌های مختلف را از نظر سرعت بررسی می‌کنیم:

۱) روش‌های iloc و loc:

این روش‌ها برای دسترسی به داده‌ها بر اساس موقعیت عددی (iloc) و برچسب‌ها (loc) استفاده می‌شوند. هرچند این روش‌ها بسیار انعطاف‌پذیر هستند، اما به دلیل سربار پردازشی مرتبط با جستجوی موقعیت یا برچسب، سرعت کمتری نسبت به روش‌های مستقیم‌تر دارند. زمان دسترسی معمولاً بین ۵ تا ۱۵ میلی‌ثانیه برای هر عملیات است.

۲) روش‌های iat و at:

اگر به دنبال دسترسی سریع به یک مقدار خاص هستید، iat (برای موقعیت عددی) و at (برای برچسب) بهترین گزینه‌ها هستند. این روش‌ها به دلیل اجرای مستقیم و کمترین سربار، کمتر از ۱ میلی‌ثانیه برای دسترسی به یک مقدار زمان می‌برند، که آن‌ها را به سریع‌ترین روش‌ها تبدیل می‌کند.

۳) فیلترگذاری با شرط‌های منطقی:

برای دسترسی به مجموعه‌ای از سطرها که شرایط خاصی را برآورده می‌کنند، می‌توانید از فیلترهای شرطی استفاده کنید. این روش‌ها معمولاً زمان دسترسی بین ۲۰ تا ۵۰ میلی‌ثانیه دارند، که بسته به اندازه DataFrame و پیچیدگی شرط می‌تواند متغیر باشد.

۴) استفاده از query:

روش query زمانی مفید است که بخواهید شرایط پیچیده را با خوانایی بالا اعمال کنید. با این حال، این روش به دلیل تبدیل عبارات به رشته و پردازش بیشتر، نسبت به فیلترگذاری مستقیم کندتر است و معمولاً بین ۵۰ تا ۱۰۰ میلی‌ثانیه زمان می‌برد.

نتیجه‌گیری

  • برای دسترسی به مقادیر خاص، استفاده از iat و at به دلیل سرعت بالا و کارایی بهتر توصیه می‌شود.
  • در فیلترگذاری داده‌ها، روش‌های شرطی مستقیم سریع‌تر عمل می‌کنند، اما اگر خوانایی کد برای شما مهم‌تر است، query انتخاب بهتری خواهد بود.
  • انتخاب روش مناسب باید با توجه به اندازه DataFrame و نوع دسترسی مورد نیاز انجام شود.

اشتراک گذاری:

آخرین اخبار

دیدگاه‌ها

اشتراک در
اطلاع از
guest
0 Comments
قدیمی‌ترین
تازه‌ترین بیشترین رأی
بازخورد (Feedback) های اینلاین
مشاهده همه دیدگاه ها
دیتانید تو مراحل مختلف تحلیل داده می‌تونه به شما کمک کنه:
  1. امکان‌سنجی خواسته‌ها و تطبیق نیازمندی‌ها
  2. استخراج و تمیز کردن دادگان
  3. طراحی مدل‌های مناسب
  4. آموزش مدل براساس داده‌های به‌دست اومده
  5. استقرار مدل

آخرین مقالات

مقاله ویدیویی

مقالات مرتبط

مقالات مرتبط

پست دوم: چگونه کار می‌کنند؟ (فناوری‌های زیربنایی ماشین‌های خودران)
حمل‌ونقل هوشمند و فناوری‌های نوین

قسمت دوم: چگونه کار می‌کنند؟ (فناوری‌های زیربنایی ماشین‌های خودران)

مقدمه ماشین‌های خودران تنها وسایل نقلیه‌ای با قابلیت حرکت خودکار نیستند؛ بلکه مجموعه‌ای از سیستم‌های هوشمند و پیچیده‌اند که با استفاده از فناوری‌های پیشرفته می‌توانند

ادامه مطلب »