সমস্যা বিবরণ
একটি মিক্সড টাইপের সিরিজ দেওয়া আছে (ইন্টিজার, ফ্লোট, স্ট্রিং)। লক্ষ্য হলো প্রতিটি ডেটা টাইপের এলিমেন্টের মোট সংখ্যা আলাদা আলাদা গণনা করা।
ইনপুট সিরিজ
0 1
1 2
2 python
3 3
4 4
5 5
6 6.5
সমাধানের পদ্ধতি (Lambda Filter ব্যবহার করে)
- সিরিজ তৈরি করুন।
- ফিল্টার করুন
filter(lambda x: type(x)==int, data)দিয়ে ইন্টিজার,type(x)==floatদিয়ে ফ্লোট,type(x)==strদিয়ে স্ট্রিং। - লেন্থ নিন ফিল্টার করা সিরিজের
len()।
পূর্ণ কোড উদাহরণ
import pandas as pd
ls = [1, 2, "python", 3, 4, 5, 6.5]
data = pd.Series(ls)
int_count = len(pd.Series(filter(lambda x: type(x) == int, data)))
float_count = len(pd.Series(filter(lambda x: type(x) == float, data)))
str_count = len(pd.Series(filter(lambda x: type(x) == str, data)))
print(f"ইন্টিজার কাউন্ট: {int_count}")
print(f"ফ্লোট কাউন্ট: {float_count}")
print(f"স্ট্রিং কাউন্ট: {str_count}")
আউটপুট
ইন্টিজার কাউন্ট: 5
ফ্লোট কাউন্ট: 1
স্ট্রিং কাউন্ট: 1
বিকল্প পদ্ধতি (প্যান্ডাস apply ও value_counts)
type_counts = data.apply(type).value_counts()
print(type_counts)
# আউটপুট:
# 5
# 1
# 1
নোট: প্যান্ডাস সিরিজে মিক্সড টাইপ থাকলে dtype `object` হয়। apply(type) প্রতিটি এলিমেন্টের আসল পাইথন টাইপ রিটার্ন করে।