পাইথন পান্ডাসে MultiIndex-এর সকল লেভেল একসাথে নতুন ভ্যালু দিয়ে আপডেট করতে MultiIndex.set_levels() মেথড ব্যবহার করা হয়। প্রতিটি লেভেলের জন্য একটি লিস্ট দিতে হয়।
প্রয়োজনীয় লাইব্রেরি ইম্পোর্ট করুন
import pandas as pd
মাল্টিইন্ডেক্স তৈরি করুন
arrays = [[1, 2, 3, 4], ['John', 'Tim', 'Jacob', 'Chris']]
multiIndex = pd.MultiIndex.from_arrays(arrays, names=('ranks', 'student'))
সকল লেভেলে নতুন ভ্যালু সেট করুন
দুইটি লিস্ট দিয়ে দুটি লেভেল আপডেট করা হয়েছে:
print("\nSet new levels in Multi-index...\n", multiIndex.set_levels([['p', 'q', 'r', 's'], [10, 20, 30, 40]]))
সম্পূর্ণ উদাহরণ
import pandas as pd
# অ্যারে তৈরি
arrays = [[1, 2, 3, 4], ['John', 'Tim', 'Jacob', 'Chris']]
# MultiIndex তৈরি
multiIndex = pd.MultiIndex.from_arrays(arrays, names=('ranks', 'student'))
# MultiIndex প্রদর্শন
print("The Multi-index...\n", multiIndex)
# লেভেলগুলো দেখুন
print("\nThe levels in Multi-index...\n", multiIndex.levels)
# সকল লেভেলে নতুন ভ্যালু সেট করুন
print("\nSet new levels in Multi-index...\n", multiIndex.set_levels([['p', 'q', 'r', 's'], [10, 20, 30, 40]]))
আউটপুট
The Multi-index...
MultiIndex([(1, 'John'), (2, 'Tim'), (3, 'Jacob'), (4, 'Chris')], names=['ranks', 'student'])
The levels in Multi-index...
[[1, 2, 3, 4], ['Chris', 'Jacob', 'John', 'Tim']]
Set new levels in Multi-index...
MultiIndex([('p', 30), ('q', 40), ('r', 20), ('s', 10)], names=['ranks', 'student'])
ব্যাখ্যা
- প্রথম লিস্ট
['p', 'q', 'r', 's']— লেভেল ০ (ranks) এর জন্য। - দ্বিতীয় লিস্ট
[10, 20, 30, 40]— লেভেল ১ (student) এর জন্য। - দোযোগুলোই সর্টেড ক্রমে দেওয়া হয়েছে।
- ফলাফলে কোডগুলো নতুন লেভেলের সাথে ম্যাপ হয়েছে: লেভেল ০: ০->'p', ১->'q', ২->'r', ৩->'s'; লেভেল ১: ০->10, ১->20, ২->30, ৩->40।
- মূল কোড ম্যাট্রিক্স ছিল: [[0,1,2,3], [2,4,1,0,3]] (প্রদর্শিত নয়), ফলে নতুন টাপলগুলো হলো: ('p',30), ('q',40), ('r',20), ('s',10)।
গুরুত্বপূর্ণ: set_levels() ইনডেক্সের আসল ডেটা (codes) পরিবর্তন করে না, শুধু লেভেলের লেবেলগুলো (unique values) পরিবর্তন করে। যদি আপনি আসল ডেটা পরিবর্তন করতে চান, তবে নতুন মাল্টিইন্ডেক্স তৈরি করুন।