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

পাইথনে ডেটাফ্রেম থেকে প্যালিনড্রোম (palindrome) নাম ফিল্টার করা


প্যালিনড্রোম নাম প্রিন্ট করার ফলাফল নিচের মতো:

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
  1. পাইথন প্রোগ্রাম: DataFrame-কে Name কলাম অনুযায়ী ডিসেন্ডিং অর্ডারে সোর্ট করা

  2. পাইথন প্রোগ্রাম: ডেটাফ্রেম থেকে 'A' গ্রেড পাওয়া ছাত্রদের নাম প্রিন্ট করুন

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

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