প্যালিনড্রোম নাম প্রিন্ট করার ফলাফল নিচের মতো:
Palindrome names are: Id Name 0 1 bob 2 3 hannah
এটি সমাধানের জন্য নিচের পদ্ধতিগুলো অনুসরণ করব:
সমাধান ১
একটি ডেটাফ্রেম ডিফাইন করুন।
লিস্ট কম্প্রিহেনশন ব্যবহার করে df['Name'] কলামের সব ভ্যালু i-তে অ্যাক্সেস করুন এবং ইফ কন্ডিশনে i==i[::-1] চেক করুন। ট্রু হলে i ভ্যালু লিস্টে যোগ করুন।
l = [i for i in df['Name'] if (i == i[::-1])]
শেষে লিস্টের ভ্যালু df['Name'] কলামে আছে কিনা isin() দিয়ে চেক করুন।
df[df['Name'].isin(l)]
উদাহরণ
নিচের কোডটি দেখুন আরও ভালো বুঝতে:
import pandas as pd
data = {'Id':[1,2,3,4,5], 'Name':['bob','peter','hannah','james','david']}
df = pd.DataFrame(data)
print("DataFrame is:\n", df)
l = [i for i in df['Name'] if (i == i[::-1])]
print("Palindrome names are:\n", df[df['Name'].isin(l)])
আউটপুট
DataFrame is: Id Name 0 1 bob 1 2 peter 2 3 hannah 3 4 james 4 5 david Palindrome names are: Id Name 0 1 bob 2 3 hannah
সমাধান ২
একটি ডেটাফ্রেম ডিফাইন করুন।
ল্যাম্বডা ফিল্টার ফাংশন ব্যবহার করে df['Name']-এর প্রতিটি ভ্যালু রিভার্সড ফাংশন দিয়ে তুলনা করুন। মিললে রেজাল্ট লিস্টে সংরক্ষণ করুন।
result = list(filter(lambda x: (x == "".join(reversed(x))), df['Name']))
শেষে লিস্টের ভ্যালু df['Name'] কলামে আছে কিনা isin() দিয়ে চেক করুন।
df[df['Name'].isin(result)]
উদাহরণ
নিচের কোডটি দেখুন আরও ভালো বুঝতে:
import pandas as pd
data = {'Id':[1,2,3,4,5], 'Name':['bob','peter','hannah','james','david']}
df = pd.DataFrame(data)
print("DataFrame is:\n", df)
result = list(filter(lambda x: (x == "".join(reversed(x))), df['Name']))
print("Palindrome names are:\n", df[df['Name'].isin(result)])
আউটপুট
DataFrame is: Id Name 0 1 bob 1 2 peter 2 3 hannah 3 4 james 4 5 david Palindrome names are: Id Name 0 1 bob 2 3 hannah