ডেটাফ্রেমের সারিগুলো থেকে সারি ফিল্টার করার জন্য সারটির যোগফল (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()বা ভেক্টরাইজড অপারেশন ব্যবহার করুন