از طریق منوی جستجو مطلب مورد نظر خود در وبلاگ را به سرعت پیدا کنید
حذف ردیف های DataFrame بر اساس مقدار ستون در پانداها
سرفصلهای مطلب
معرفی
پردازش داده ها یک کار رایج در هر پایگاه کد تجزیه و تحلیل داده است. و در پایتون، کتابخانه پانداها یکی از محبوب ترین ابزارها برای تجزیه و تحلیل داده ها است که همچنین ساختارهای داده با کارایی بالا و آسان برای استفاده و ابزارهای تجزیه و تحلیل داده را ارائه می دهد که یکی از آنها 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