ভূমিকা
পাইথনের বিল্ট-ইন ডিকশনারি এবং লিস্ট ইনডেক্স লেবেল বা পজিশন দিয়ে ডেটা এক্সেস করে। পান্ডাসে .loc (লেবেল-ভিত্তিক) এবং .iloc (পজিশন-ভিত্তিক) এট্রিবিউট রয়েছে এই কাজের জন্য। .loc পাইথন ডিকশনারির মতো লেবেল দিয়ে কাজ করে।
.loc[] ব্যবহার করে ইনডেক্স লেবেল দিয়ে সাবসেট নির্বাচন
loc এবং iloc সিরিজ ও ডেটাফ্রেম উভয়েই উপলব্ধ।
১. 'title' কলামকে ইনডেক্স করে মুভি ডেটাসেট লোড:
import pandas as pd
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.sort_index(inplace=True) movies.head(3)
৩. একক সারি নির্বাচন (সিনট্যাক্স: স্কয়ার ব্র্যাকেট ব্যবহার হয়):
movies.loc["Spider-Man 3"]
আউটপুট: সিরিজ রিটার্ন হবে (budget, vote_average, vote_count)।
৪. স্লাইস ব্যবহার করে রেঞ্জ নির্বাচন (স্ট্রিং লেবেলের ক্ষেত্রে ইনক্লूसিভ):
movies.loc["Alien":"Avatar"]
আউটপুট: ১৬৭ সারি (Alien থেকে Avatar পর্যন্ত সব সিনেমা)।
৫. একাধিক র্যান্ডম সারি নির্বাচন (নেস্টেড লিস্ট ব্যবহার):
movies.loc[["Avatar", "Avengers: Age of Ultron"]]
৬. সিলেকশনের অর্ডার পরিবর্তন: লিস্টে ইচ্ছামতো অর্ডার দিয়ে ডেটা বের করা যায়।
৭. ভুল লেবেল দিলে এরর হ্যান্ডলিং: আধুনিক পান্ডাসে ভুল লেবেল দিলে KeyError উঠে। এড়াতে "label" in movies.index চেক করুন অথবা movies.query() ব্যবহার করুন।
"When is Avengers next movie?" in movies.index # False
movies.query("title in ('Avatar', 'When is Avengers next Movie?')") # শুধু Avatar রিটার্ন করবে