ভূমিকা
পান্ডাসে ডেটার সাবসেট নির্বাচনের জন্য দুটি পদ্ধতি রয়েছে: ইনডেক্স পজিশন এবং ইনডেক্স লেবেল। এই আর্টিকেলে লেক্সিকোগ্রাফিক্যাল স্লাইসিং (শব্দক্রম অনুযায়ী স্লাইসিং) ব্যবহার করে ডেটা নির্বাচন দেখানো হয়েছে। ক্যাগেল থেকে মুভি ডেটাসেট ব্যবহার করা হয়েছে।
পদ্ধতি
১. প্রয়োজনীয় কলামসহ মুভি ডেটাসেট ইম্পোর্ট:
import pandas as pd
import numpy as np
movies = pd.read_csv(
"https://raw.githubusercontent.com/sasankac/TestDataSet/master/movies_data.csv",
index_col="title",
usecols=["title", "budget", "vote_average", "vote_count"]
)
movies.sample(n=5)
২. ইনডেক্স সর্ট করা (বিশেষ করে স্ট্রিং ইনডেক্সের জন্য অত্যন্ত গুরুত্বপূর্ণ):
বড় ডেটাসেটে ইনডেক্স সর্ট করা থাকলে লেক্সিকোগ্রাফিক্যাল স্লাইসিং খুব দ্রুত হয়। অনসর্টেড ইনডেক্স থাকলে পান্ডাসকে প্রতিটি লেবেল এক একটি করে ট্রাভার্স করতে হয়, যা পারফরম্যান্স কমায়।
# ইনডেক্স সর্টেড কিনা চেক movies.index.is_monotonic # আউটপুট: False
৩. অনসর্টেড ইনডেক্সে স্লাইসিং চেষ্টা করলে এরর:
movies.loc["Aa":"Bb"]
এটি ValueError: index must be monotonic increasing or decreasing এরর দেবে।
৪. ইনডেক্স সর্ট করে আবার চেষ্টা:
movies.sort_index(inplace=True) movies.loc["Aa":"Bb"]
এখন 'A' অক্ষরে শুরু হওয়া সিনেমা থেকে 'B' অক্ষরের শেষ সিনেমা পর্যন্ত সঠিকভাবে স্লাইস হবে। আউটপুটে ২৯২ সারি দেখা যাবে।
৫. ডিক্রিজিং অর্ডারে স্লাইসিং (উল্টা ক্রম):
যদি ইনডেক্স ডিসেন্ডিং অর্ডারে সর্ট করা থাকে, তবে স্লাইসিং এর সময় শুরুর এবং শেষের লেবেল উল্টা দিতে হয় (যেমন movies.loc["Bb":"Aa"]), অন্যথায় খালি ডেটাফ্রেম রিটার্ন হবে।