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

পাইথন প্যান্ডাস দিয়ে ডেটাফ্রেমের সিটি (City) কলাম থেকে ইউনিক প্রিফিক্স (prefix) রিমুভ করে ফিল্টার করা


ধরুন আপনার কাছে একটি ডেটাফ্রেম আছে, ইউনিক প্রিফিক্স রিমুভ করার পর সিটি নামের ফলাফল নিচের মতো:

   Id      City
2   3   Kolkata
3   4  Hyderabad
6   7   Haryana
8   9  Kakinada
9  10   Kochin

এটি সমাধানের জন্য নিচের ধাপগুলো অনুসরণ করব:

সমাধান

  • একটি ডেটাফ্রেম ডিফাইন করুন।

  • একটি খালি লিস্ট তৈরি করুন সিটি কলামের সব ফার্স্ট ক্যারেক্টার অ্যাপেন্ড করার জন্য।

l = []
for x in df['City']:
    l.append(x[0])
  • আরেকটি খালি লিস্ট তৈরি করুন রিপিটেড ক্যারেক্টার ফিল্টার করার জন্য।

ফর লুপ এবং ইফ কন্ডিশন সেট করুন ইউনিক ক্যারেক্টার অ্যাপেন্ড করার জন্য। নিচে ডিফাইন করা হলো:

l1 = []
for j in l:
    if l.count(j) > 1:
        if j not in l1:
            l1.append(j)
  • আরেকটি খালি লিস্ট তৈরি করুন। ফর লুপ সেট করুন সিটি কলাম অ্যাক্সেস করতে এবং এলিমেন্টের ফার্স্ট ক্যারেক্টার l1-এ আছে কিনা চেক করুন। থাকলে অন্য লিস্টে অ্যাপেন্ড করুন।

l2 = []
for x in df['City']:
    if x[0] in l1:
        l2.append(x)
  • শেষে l2 এলিমেন্টগুলো সিটি কলামে আছে কিনা যাচাই করুন isin() ব্যবহার করে এবং ডেটাফ্রেম প্রিন্ট করুন।

df[df['City'].isin(l2)]

উদাহরণ

নিচের কোডটি দেখুন আরও ভালো বুঝতে:

import pandas as pd
df = pd.DataFrame({'Id':[1,2,3,4,5,6,7,8,9,10],
                   'City':['Chennai','Delhi','Kolkata','Hyderabad','Pune','Mumbai','Haryana','Bengaluru','Kakinada','Kochin']})
l = []
for x in df['City']:
    l.append(x[0])
l1 = []
for j in l:
    if l.count(j) > 1:
        if j not in l1:
            l1.append(j)
l2 = []
for x in df['City']:
    if x[0] in l1:
        l2.append(x)
print(df[df['City'].isin(l2)])

আউটপুট

   Id      City
2   3   Kolkata
3   4  Hyderabad
6   7   Haryana
8   9  Kakinada
9  10   Kochin
  1. পাইথন প্রোগ্রাম: ডেটাফ্রেমে ন্যূনতম বয়সী কর্মীর ID ও বেতন খুঁজে বের করুন

  2. পাইথন প্রোগ্রাম: সিরিজের সব এলিমেন্ট রাউন্ড (Round) করুন

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

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