সমস্যা বিবরণ
একটি সংখ্যাসূচক সিরিজ দেওয়া আছে। লক্ষ্য হলো ১০ থেকে ১৫ (উভয় অন্তর্ভুক্ত) রেঞ্জের মধ্যে পড়া সব এলিমেন্ট ফিল্টার করে বের করা।
ইনপুট সিরিজ
0 12
1 13
2 15
3 20
4 19
5 18
6 11
সমাধান ১: প্যান্ডাস বিল্ট-ইন between() মেথড (সেরা পদ্ধতি)
import pandas as pd
l = [12,13,15,20,19,18,11]
data = pd.Series(l)
print("রেঞ্জ ১০-১৫ এর মধ্যে এলিমেন্ট:")
print(data[data.between(10, 15)])
সমাধান ২: লুপ ও কন্ডিশনাল লজিক ব্যবহার করে
import pandas as pd
l = [12,13,15,20,19,18,11]
data = pd.Series(l)
ls = []
for i in range(len(data)):
if data[i] >= 10 and data[i] <= 15:
ls.append(data[i])
print(data[data.isin(ls)])
আউটপুট (দুই পদ্ধতিরই)
0 12
1 13
2 15
6 11
dtype: int64
ব্যাখ্যা
between(10, 15) ইনক্লूसিভ (inclusive) অর্থাৎ ১০ এবং ১৫ উভয়ই অন্তর্ভুক্ত করে। ভেক্টরাইজড between() লুপের চেয়ে অনেক দ্রুত এবং কোড সংক্ষিপ্ত।