পাইথন পান্ডাসে MultiIndex-এ শুধু একটি নির্দিষ্ট লেভেলকে নতুন ভ্যালু দিয়ে আপডেট করতে MultiIndex.set_levels() মেথড ব্যবহার করা হয়। level প্যারামিটার দিয়ে লেভেলের নাম নির্দিষ্ট করা হয়।
প্রয়োজনীয় লাইব্রেরি ইম্পোর্ট করুন
import pandas as pd
মাল্টিইন্ডেক্স তৈরি করুন
arrays = [[1, 2, 3, 4], ['John', 'Tim', 'Jacob', 'Chris']]
multiIndex = pd.MultiIndex.from_arrays(arrays, names=('ranks', 'student'))
'student' লেভেলে নতুন ভ্যালু সেট করুন
level='student' ব্যবহার করে শুধু 'student' লেভেল আপডেট করা হয়েছে:
print("\nSet a new level in Multi-index...\n", multiIndex.set_levels(['Emma', 'Angelina', 'Scarlett', 'Jeni'], level='student'))
সম্পূর্ণ উদাহরণ
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)
# 'student' লেভেলে নতুন ভ্যালু সেট করুন
print("\nSet a new level in Multi-index...\n", multiIndex.set_levels(['Emma', 'Angelina', 'Scarlett', 'Jeni'], level='student'))
আউটপুট
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 a new level in Multi-index...
MultiIndex([(1, 'Scarlett'), (2, 'Jeni'), (3, 'Angelina'), (4, 'Emma')], names=['ranks', 'student'])
ব্যাখ্যা
- মূল লেভেল 'student'-এর ভ্যালুগুলো ছিল: ['Chris', 'Jacob', 'John', 'Tim'] (সর্টেড ইউনিক ভ্যালু)।
- নতুন লিস্ট: ['Emma', 'Angelina', 'Scarlett', 'Jeni'] — এটি সর্টেড ক্রমে দেওয়া হয়েছে (A, E, J, S)।
- পান্ডাস নতুন লেভেলের ভ্যালুগুলো সর্টেড ক্রমে আশা করে, এবং কোডগুলো (codes) পুনঃগঠন করে।
- ফলাফলে দেখানো হয়েছে: (1, 'Scarlett'), (2, 'Jeni'), (3, 'Angelina'), (4, 'Emma') — কারণ নতুন লেভেলের সর্টেড ক্রম অনুযায়ী কোডগুলো ম্যাপ হয়েছে।
গুরুত্বপূর্ণ: set_levels() মেথডটি লেভেলের ইউনিক ভ্যালুগুলো পরিবর্তন করে, ইনডেক্স এন্ট্রিগুলো সরাসরি পরিবর্তন করে না। কোডগুলো (integer codes) নতুন লেভেলের সাথে ম্যাপ হয়। যদি আপনি সরাসরি মানগুলো পরিবর্তন করতে চান, তবে set_codes() বা নতুন মাল্টিইন্ডেক্স তৈরি করুন।