কম্পিউটার টিউটোরিয়াল

পাইথন প্যান্ডাস: সারানোর ভিত্তিতে ডেটাফ্রেম থেকে কিছু সারি ফিল্টার করা

ডেটাফ্রেমের সারিগুলো থেকে সারি ফিল্টার করার জন্য সারটির যোগফল (row-wise sum) ব্যবহার করা যেতে পারে। উদাহরণস্বরূপ, তিনজন ছাত্রের নম্বর থেকে যেসব বিষয়ে মোট নম্বর ২০০-এর বেশি, শুধু সেসব সারি রাখা।

পদ্ধতি

axis=1 প্যারামিটার দিয়ে সারি-ভিত্তিক যোগফল বের করে শর্ত প্রয়োগ করা হয়:

df = df[df.sum(axis=1) > 200]

সম্পূর্ণ উদাহরণ

import pandas as pd

# তিনজন ছাত্রের নম্বর ডেটাফ্রেম
df = pd.DataFrame({
    'Jacob_Marks': [95, 90, 70, 85, 88],
    'Ted_Marks':   [60, 50, 65, 85, 70],
    'Jamie_Marks': [77, 76, 60, 45, 50]
})

print("মূল ডেটাফ্রেম:")
print(df)

# প্রতিটি সারির যোগফল ২০০-এর বেশি হলে রাখা
df_filtered = df[df.sum(axis=1) > 200]

print("\nফিল্টার করা ডেটাফ্রেম (সারির যোগফল > ২০০):")
print(df_filtered)

আউটপুট

মূল ডেটাফ্রেম:
   Jacob_Marks  Jamie_Marks  Ted_Marks
0           95           77         60
1           90           76         50
2           70           60         65
3           85           45         85
4           88           50         70

ফিল্টার করা ডেটাফ্রেম (সারির যোগফল > ২০০):
   Jacob_Marks  Jamie_Marks  Ted_Marks
0           95           77         60
1           90           76         50
3           85           45         85
4           88           50         70

সারি ২ (ইন্ডেক্স ২) এর যোগফল ৭০+৬০+৬৫ = ১৯৫ যা ২০০-এর কম, তাই তা বাদ পড়ে।

অতিরিক্ত টিপস

  • axis=0 (ডিফল্ট) দিলে কলাম-ভিত্তিক যোগফল হবে
  • অন্য শর্তও ব্যবহার করা যায়, যেমন: df[df.sum(axis=1).between(150, 250)]
  • বড় ডেটাসেটে পারফরম্যান্সের জন্য df.eval() বা ভেক্টরাইজড অপারেশন ব্যবহার করুন
  1. পাইথন পান্ডাসে eval() ফাংশন ব্যবহার করে রোয়ের যোগফল নির্ণয়

  2. পাইথন পান্ডাসে শর্তভিত্তিক সাবসেট রো সিলেক্ট করা

  3. পান্ডাস ডেটাফ্রেম থেকে MultiIndex তৈরি করা

  4. পান্ডাস ডেটাফ্রেম থেকে নাল সারি ড্রপ করা (dropna)