Pandas-এ query() মেথড ব্যবহার করে কলামের মান অনুযায়ী সারি (row) ফিল্টার করা খুব সহজ এবং পঠনীয়। এটি SQL-সদৃশ সিনট্যাক্সে কন্ডিশন লিখতে দেয়।
প্রাথমিক সেটআপ
import pandas as pd
# টিম র্যাঙ্কিং ডেটা
Team = [['India', 1, 100], ['Australia', 2, 85], ['England', 3, 75],
['New Zealand', 4, 65], ['South Africa', 5, 50], ['Bangladesh', 6, 40]]
dataFrame = pd.DataFrame(Team, columns=['Country', 'Rank', 'Points'])
print("DataFrame...\n", dataFrame)
উদাহরণ ১: Rank == 5 ফিল্টার
# Rank 5 olan টিম বের করা
result = dataFrame.query("Rank == 5")
print("\nFetch Team with Rank 5..\n", result)
উদাহরণ ২: একাধিক কন্ডিশন (Points > 70 এবং Rank < 3)
# Points 70-র বেশি এবং Rank 3-র কম
result = dataFrame.query("Points > 70 and Rank < 3")
print("\nFetch Team with points above 70 and Rank less than 3..\n", result)
আউটপুট
Fetch Team with Rank 5..
Country Rank Points
4 South Africa 5 50
Fetch Team with points above 70 and Rank less than 3..
Country Rank Points
0 India 1 100
1 Australia 2 85
টিপস
query()-এ কলাম নাম যদি স্পেস বা স্পেশাল ক্যারেক্টার ধারণ করে, তবে ব্যাকটিক (`) ব্যবহার করুন:query("`Column Name` > 10")।- ভেরিয়েবল ব্যবহার করতে
@চিহ্ন দিন:query("Rank > @threshold")। - বুলিয়ান ইন্ডেক্সিং (
df[df.Rank == 5]) বিকল্প, কিন্তু query() বড় ডেটাসেটে দ্রুত এবং পঠনীয়।