সমস্যা বিবরণ
একটি সিরিজ দেওয়া আছে। লক্ষ্য হলো সিরিজে কোনো ডুপ্লিকেট ভ্যালু আছে কিনা তা যাচাই করা।
ইনপুট সিরিজ (ডুপ্লিকেট নেই)
0 1
1 2
2 3
3 4
4 5
ইনপুট সিরিজ (ডুপ্লিকেট আছে)
0 1
1 2
2 3
3 4
4 5
5 3
সমাধান ১: NumPy unique() দিয়ে লেন্থ তুলনা করে
যদি সিরিজের লেন্থ ও ইউনিক ভ্যালুগুলোর লেন্থ সমান হয়, তবে ডুপ্লিকেট নেই।
import pandas as pd
import numpy as np
data = pd.Series([1,2,3,4,5])
result = "ডুপ্লিকেট নেই" if len(data) == len(np.unique(data)) else "ডুপ্লিকেট পাওয়া গেছে!"
print(result)
data_dup = pd.Series([1,2,3,4,5,3])
result2 = "ডুপ্লিকেট নেই" if len(data_dup) == len(np.unique(data_dup)) else "ডুপ্লিকেট পাওয়া গেছে!"
print(result2)
সমাধান ২: প্যান্ডাস duplicated() মেথড (স্পষ্ট ও সরাসরি)
import pandas as pd
data = pd.Series([1,2,3,4,5,3])
if data.duplicated().any():
print("ডুপ্লিকেট পাওয়া গেছে!")
else:
print("ডুপ্লিকেট নেই")
# কোন ইনডেক্সগুলো ডুপ্লিকেট?
print("ডুপ্লিকেট ইনডেক্স:", data[data.duplicated()].index.tolist())
আউটপুট
ডুপ্লিকেট নেই
ডুপ্লিকেট পাওয়া গেছে!
ডুপ্লিকেট ইনডেক্স: [5]
ব্যাখ্যা: duplicated() প্রতিটি এলিমেন্টের জন্য True/False রিটার্ন করে (প্রথম ঘটনাকে False, পরেরগুলাকে True)। .any() দিয়ে কোনো True আছে কিনা চেক করা যায়।