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

পাইথন প্রোগ্রাম: সিরিজ থেকে শুধু ইন্টিজার (Integer) এলিমেন্ট ফিল্টার করুন

সমস্যা বিবরণ

একটি মিক্সড সিরিজ দেওয়া আছে (সংখ্যা ও স্ট্রিং মিশ্রিত)। লক্ষ্য হলো শুধু ইন্টিজার টাইপের এলিমেন্টগুলো ফিল্টার করে বের করা।

ইনপুট সিরিজ

0       1
1       2
2    python
3    pandas
2       3
5       4
6       5

সমাধান ১: টাইপ চেকিং দিয়ে লুপ (সহজ ও স্পষ্ট)

import pandas as pd

ls = [1, 2, "python", "pandas", 3, 4, 5]
data = pd.Series(ls)

print("শুধু ইন্টিজার এলিমেন্ট:")
for i, j in data.items():
    if type(j) == int:
        print(i, j)

সমাধান ২: Regex ও ফিল্টার ব্যবহার করে (স্ট্রিং-ভিত্তিক)

সব ভ্যালু স্ট্রিং-এ কনভার্ট করে রেজেক্স \d+ দিয়ে শুধু ডিজিট চেক করা।

import pandas as pd
import re

ls = [1, 2, "python", "pandas", 3, 4, 5]
data = pd.Series(ls)
result = pd.Series(filter(lambda x: re.match(r"\d+", str(x)), data))
print(data[data.isin(result)])

সমাধান ৩: প্যান্ডাস apply ও বুলিয়ান ইন্ডেক্সিং (সেরা পদ্ধতি)

import pandas as pd

data = pd.Series([1, 2, "python", "pandas", 3, 4, 5])
mask = data.apply(lambda x: isinstance(x, int))
print(data[mask])

আউটপুট (সব পদ্ধতিরই)

0    1
1    2
4    3
5    4
6    5
dtype: object

দ্রষ্টব্য: isinstance(x, int) বুলিয়ান মানও ইন্টেজার ধরে নেয় (True/False হলো int-এর সাবক্লাস)। কেবল শুদ্ধ ইন্ট চাইলে type(x) is int ব্যবহার করুন।

  1. পাইথন প্রোগ্রাম: সিরিজ থেকে বৈধ (Valid) তারিখ (Date) ফিল্টার করুন

  2. পাইথন প্রোগ্রাম: সিরিজে পূর্ণবর্গ সংখ্যা (Perfect Squares) ফিল্টার করুন

  3. পাইথনে দিয়ে गये রেঞ্জে এলিমেন্ট আপডেট করার প্রোগ্রাম

  4. পাইথনে পূর্ণসংখ্যা অ্যারে থেকে স্বতন্ত্র (distinct) উপাদান প্রিন্ট করার প্রোগ্রাম