وبلاگ رسانگار
با ما حرفه ای باشید

سرور مجازی NVMe

حذف ردیف های DataFrame بر اساس مقدار ستون در پانداها

0 156
زمان لازم برای مطالعه: 3 دقیقه


معرفی

پردازش داده ها یک کار رایج در هر پایگاه کد تجزیه و تحلیل داده است. و در پایتون، کتابخانه پانداها یکی از محبوب ترین ابزارها برای تجزیه و تحلیل داده ها است که همچنین ساختارهای داده با کارایی بالا و آسان برای استفاده و ابزارهای تجزیه و تحلیل داده را ارائه می دهد که یکی از آنها DataFrame است. در این بایت، روش حذف ردیف ها در DataFrame بر اساس مقدار در یک ستون خاص را بررسی می کنیم.

DataFrames در پانداها

DataFrame یک ساختار داده با برچسب دو بعدی با ستون هایی از انواع مختلف است. می توانید آن را مانند صفحه گسترده یا جدول SQL یا فرهنگ لغت اشیاء سری در نظر بگیرید. به طور کلی پر استفاده ترین شی پاندا است. بیایید یک DataFrame ساده ایجاد کنیم:

import pandas as pd

data = {
    'Name': ('John', 'Anna', 'Peter', 'Linda'),
    'Age': (28, 24, 35, 32),
    'Country': ('USA', 'USA', 'Canada', 'USA')
}

df = pd.DataFrame(data)

print(df)

خروجی:

    Name  Age Country
0   John   28     USA
1   Anna   24     USA
2  Peter   35  Canada
3  Linda   32     USA

چرا سطرها را بر اساس مقدار ستون حذف کنیم؟

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

روش حذف ردیف ها بر اساس مقدار ستون

روش های مختلفی برای حذف ردیف ها در DataFrame بر اساس مقدار ستون وجود دارد که در اینجا به بررسی آنها خواهیم پرداخت.

روش 1: با استفاده از نمایه سازی بولی

نمایه سازی Boolean یک ویژگی قدرتمند در پانداها است که به ما امکان می دهد داده ها را بر اساس مقادیر واقعی در DataFrame انتخاب کنیم. این روشی است که درک آن برای اکثر افراد باید آسان باشد و آن را به نقطه شروع خوبی برای بحث ما تبدیل می کند.

فرض کنید ما یک DataFrame از نمرات دانش‌آموز داریم و می‌خواهیم تمام ردیف‌هایی را که نمره آنها زیر 60 است حذف کنیم. در اینجا روش انجام این کار با نمایه‌سازی بولی آمده است:

import pandas as pd


df = pd.DataFrame({
    'name': ('Alice', 'Bob', 'Charlie', 'David', 'Eve'),
    'grade': (85, 55, 65, 70, 50)
})


mask = df('grade') >= 60


df = df(mask)

print(df)

خروجی:

      name  grade
0    Alice     85
2  Charlie     65
3    David     70

همانطور که می بینید، ردیف های باب و ایو که امتیاز زیر 60 را کسب کردند، حذف شده است.

روش 2: استفاده از drop() تابع

پانداها drop() تابع راه دیگری برای حذف ردیف ها از DataFrame دارد. این روش به تنظیمات بیشتری نسبت به نمایه سازی بولی نیاز دارد، اما برای برخی از کاربران می تواند بصری تر باشد.

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

import pandas as pd


df = pd.DataFrame({
    'name': ('Alice', 'Bob', 'Charlie', 'David', 'Eve'),
    'grade': (85, 55, 65, 70, 50)
})


drop_indices = df(df('grade') < 60).index


df = df.drop(drop_indices)

print(df)

خروجی:

      name  grade
0    Alice     85
2  Charlie     65
3    David     70

باز هم ردیف های باب و حوا مانند روش اول ما حذف شده اند.

روش 3: استفاده از پرس و جو() تابع

این query() تابع در Pandas به ما کمک می‌کند تا داده‌ها را با استفاده از نحو رشته کوئری، دقیقاً مانند SQL فیلتر کنیم. این می تواند یک انتخاب محبوب باشد، به ویژه برای کسانی که تجربه در SQL دارند.

استفاده کنیم query() برای حذف ردیف هایی که نمره آنها زیر 60 است:

import pandas as pd


df = pd.DataFrame({
    'name': ('Alice', 'Bob', 'Charlie', 'David', 'Eve'),
    'grade': (85, 55, 65, 70, 50)
})


df = df.query('grade >= 60')

print(df)

خروجی:

      name  grade
0    Alice     85
2  Charlie     65
3    David     70

یک بار دیگر، ما با موفقیت ردیف های Bob و Eve را از DataFrame خود حذف کردیم.

نتیجه

و در اینجا شما آن را دارید – سه روش مختلف برای حذف ردیف ها در Pandas DataFrame بر اساس مقادیر ستون. هر روش نقاط قوت و موارد استفاده خاص خود را دارد و اینکه کدام یک را برای استفاده انتخاب می کنید ممکن است به نیازهای خاص و ترجیح شخصی شما بستگی داشته باشد.

(برچسب‌ها به ترجمه)# python



منتشر شده در 1402-12-28 03:14:04

امتیاز شما به این مطلب
دیدگاه شما در خصوص مطلب چیست ؟

آدرس ایمیل شما منتشر نخواهد شد.

لطفا دیدگاه خود را با احترام به دیدگاه های دیگران و با توجه به محتوای مطلب درج کنید