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

পাইথনে প্যান্ডাস ডেটাফ্রেমের মাল্টি-লেভেল কলাম ইনডেক্স থেকে একটি লেভেল ড্রপ করা

প্যান্ডাস ডেটাফ্রেমে মাল্টি-লেভেল কলাম ইনডেক্স থেকে একটি লেভেল সরানোর জন্য columns.droplevel() মেথড ব্যবহার করা হয়। কলাম-ওয়ারাইজ ইনডেক্স তৈরি করতে MultiIndex.from_tuples() ব্যবহার করা হয়।

প্রস্তুতি: মাল্টি-লেভেল কলাম ইনডেক্স তৈরি

প্রথমে টাপল থেকে মাল্টি-ইনডেক্স তৈরি করা যাক:

import pandas as pd

items = pd.MultiIndex.from_tuples([
    ("Col 1", "Col 1", "Col 1"),
    ("Col 2", "Col 2", "Col 2"),
    ("Col 3", "Col 3", "Col 3")
])

মাল্টি-ইনডেক্স ডেটাফ্রেম গঠন

এখন একটি মাল্টি-ইনডেক্স অ্যারে তৈরি করে ডেটাফ্রেম গঠন করা যাক:

import numpy as np

# মাল্টি-ইনডেক্স অ্যারে (রো ইনডেক্স용)
arr = [
    np.array(['car', 'car', 'car', 'bike', 'bike', 'bike', 'truck', 'truck', 'truck']),
    np.array(['valueA', 'valueB', 'valueC', 'valueA', 'valueB', 'valueC', 'valueA', 'valueB', 'valueC'])
]

# ডেটাফ্রেম তৈরি
df = pd.DataFrame(np.random.randn(9, 3), index=arr, columns=items)

# রো ইনডেক্সের নাম দেওয়া
df.index.names = ['level 0', 'level 1']

লেভেল ০ (প্রথম লেভেল) ড্রপ করা

কলাম ইনডেক্স থেকে প্রথম লেভেল সরাতে:

df.columns = df.columns.droplevel(0)

সম্পূর্ণ উদাহরণ

import numpy as np
import pandas as pd

# মাল্টি-লেভেল কলাম ইনডেক্স
items = pd.MultiIndex.from_tuples([
    ("Col 1", "Col 1", "Col 1"),
    ("Col 2", "Col 2", "Col 2"),
    ("Col 3", "Col 3", "Col 3")
])

# রো মাল্টি-ইনডেক্স
arr = [
    np.array(['car', 'car', 'car', 'bike', 'bike', 'bike', 'truck', 'truck', 'truck']),
    np.array(['valueA', 'valueB', 'valueC', 'valueA', 'valueB', 'valueC', 'valueA', 'valueB', 'valueC'])
]

# ডেটাফ্রেম
df = pd.DataFrame(np.random.randn(9, 3), index=arr, columns=items)
df.index.names = ['level 0', 'level 1']

print("মূল ডেটাফ্রেম:")
print(df)

# লেভেল ০ ড্রপ
df.columns = df.columns.droplevel(0)

print("\nআপডেটেড ডেটাফ্রেম (লেভেল ০ সরানো után):")
print(df)

আউটপুট ব্যাখ্যা

প্রাথমিক ডেটাফ্রেমে কলামগুলো তিন লেভেল বিশিষ্ট (Col 1, Col 1, Col 1 ইত্যাদি)। droplevel(0) কল করার পর প্রথম লেভেল সরিয়ে যায়, ফলে কলাম শুধুমাত্র "Col 1", "Col 2", "Col 3" হিসেবে দেখায়। ডেটা অপরিবর্তিত থাকে, শুধু কলাম হায়ারার্কি সরলীকৃত হয়।

নোট: আপনি কোনো লেভেলই ড্রপ করতে পারেন—droplevel(1) দ্বিতীয় লেভেল, droplevel(2) তৃতীয় লেভেল সরাবে। লেভেল নাম দিয়েও ড্রপ করা যায়: droplevel('level_name')।

  1. পান্ডাস ডেটাফ্রেমের একক কলাম থেকে ইউনিক মান বের করা

  2. pdpipe লাইব্রেরি দিয়ে ডেটাফ্রেম থেকে কলাম মুছে ফেলা

  3. পান্ডাস ডেটাফ্রেম থেকে MultiIndex তৈরি করা

  4. পান্ডাস ডেটাফ্রেম থেকে নাল সারি ড্রপ করা (dropna)