পান্ডাস ডেটাফ্রেমে ফিল্টারিং সারি
ডাটা ম্যানিপুলেশন এবং বিশ্লেষণের জন্য পান্ডাস পাইথনের একটি শক্তিশালী লাইব্রেরি। একটি সাধারণ কাজ হল কলামের মানের উপর ভিত্তি করে ডেটাফ্রেম থেকে সারি নির্বাচন করা, যা SQL এর SELECT * FROM টেবিল WHERE column_name = some_value-এর মতো।
এই নির্দেশিকা আপনাকে পান্ডাসে এটি অর্জন করার জন্য বিভিন্ন পদ্ধতির মাধ্যমে নিয়ে যাবে, আপনার ডেটা দক্ষতার সাথে ফিল্টার করা সহজ করে। আপনি একজন শিক্ষানবিস বা অভিজ্ঞ ব্যবহারকারী হোন না কেন, এই টিপসগুলি আপনার ডেটা পরিচালনার দক্ষতা বাড়াবে৷
আদেশ | বর্ণনা |
---|---|
pd.DataFrame(data) | ডেটার অভিধান থেকে একটি ডেটাফ্রেম তৈরি করে। |
df[column_name] | নাম অনুসারে ডেটাফ্রেমে একটি কলাম অ্যাক্সেস করে। |
df[condition] | একটি কলামে প্রয়োগ করা শর্তের উপর ভিত্তি করে ডেটাফ্রেম ফিল্টার করে। |
print(selected_rows) | কনসোলে ডেটাফ্রেম বা এর একটি উপসেট প্রিন্ট করে। |
df[df['Age'] >df[df['Age'] > 25] | সারি নির্বাচন করে যেখানে 'বয়স' কলামের মান 25-এর বেশি। |
df[df['City'] == 'Chicago'] | সারি নির্বাচন করে যেখানে 'সিটি' কলামের মান 'শিকাগো'-এর সমান। |
পান্ডাসে ডেটাফ্রেম সারি নির্বাচন বোঝা
প্রদত্ত স্ক্রিপ্টগুলি পাইথনে পান্ডাস লাইব্রেরি ব্যবহার করে কলামের মানের উপর ভিত্তি করে ডেটাফ্রেম থেকে কীভাবে সারি নির্বাচন করতে হয় তা প্রদর্শন করে। প্রথম স্ক্রিপ্টের সাথে পান্ডাস লাইব্রেরি আমদানি করে শুরু হয় import pandas as pd আদেশ তারপরে এটি ডেটার একটি অভিধান ব্যবহার করে একটি নমুনা ডেটাফ্রেম তৈরি করে, যা একটি ডেটাফ্রেমে রূপান্তরিত হয় pd.DataFrame(data) আদেশ তারপর স্ক্রিপ্টটি সারি নির্বাচনের জন্য দুটি পদ্ধতির ব্যাখ্যা করে: সারি নির্বাচন করা যেখানে 'বয়স' কলামের মান 25 এর বেশি df[df['Age'] > 25], এবং সারি নির্বাচন করা যেখানে 'সিটি' কলামের মান 'শিকাগো' ব্যবহার করে df[df['City'] == 'Chicago']. এই ফিল্টার করা DataFrames ব্যবহার করে মুদ্রিত হয় print() নির্বাচিত সারি প্রদর্শনের জন্য ফাংশন।
দ্বিতীয় স্ক্রিপ্ট একটি অনুরূপ কাঠামো অনুসরণ করে কিন্তু বিভিন্ন ডেটা এবং নির্বাচনের মানদণ্ড ব্যবহার করে। এটি 'পণ্য', 'মূল্য' এবং 'স্টক' কলাম সহ পণ্যের তথ্য সহ একটি ডেটাফ্রেম তৈরি করে। সারি নির্বাচন করা হয় যেখানে 'মূল্য' 200 এর থেকে কম বা সমান df[df['Price'] <= 200], এবং যেখানে 'স্টক' 40 টির বেশি ব্যবহার করে df[df['Stock'] > 40]. এই স্ক্রিপ্টগুলির উদ্দেশ্য হল নির্দিষ্ট অবস্থার উপর ভিত্তি করে ডেটাফ্রেম সারিগুলিকে কীভাবে ফিল্টার করা যায় তা দেখানো হয়, যেমন আপনি একটি কলামের মানের উপর ভিত্তি করে একটি টেবিল থেকে সারি নির্বাচন করতে SQL কোয়েরি ব্যবহার করবেন। এই কমান্ডগুলি বোঝার এবং প্রয়োগ করার মাধ্যমে, আপনি দক্ষতার সাথে আপনার ডেটাফ্রেমগুলিতে ডেটা ম্যানিপুলেট এবং বিশ্লেষণ করতে পারেন।
পান্ডাতে কলাম মান ব্যবহার করে ডেটাফ্রেমে সারি নির্বাচন করা
পান্ডাস লাইব্রেরির সাথে পাইথন
# Importing the necessary library
import pandas as pd
# Creating a sample DataFrame
data = {
'Name': ['Alice', 'Bob', 'Charlie', 'David', 'Eve'],
'Age': [24, 27, 22, 32, 29],
'City': ['New York', 'Los Angeles', 'Chicago', 'Houston', 'Phoenix']
}
df = pd.DataFrame(data)
# Selecting rows where Age is greater than 25
selected_rows = df[df['Age'] > 25]
print(selected_rows)
# Selecting rows where City is 'Chicago'
chicago_rows = df[df['City'] == 'Chicago']
print(chicago_rows)
কলামের মানদণ্ডের উপর ভিত্তি করে ডেটাফ্রেমে ডেটা ফিল্টার করা
পান্ডাস লাইব্রেরির সাথে পাইথন
# Importing pandas library
import pandas as pd
# Creating a sample DataFrame
data = {'Product': ['A', 'B', 'C', 'D', 'E'],
'Price': [100, 150, 200, 250, 300],
'Stock': [30, 60, 90, 20, 50]}
df = pd.DataFrame(data)
# Selecting rows where Price is less than or equal to 200
affordable_products = df[df['Price'] <= 200]
print(affordable_products)
# Selecting rows where Stock is more than 40
in_stock = df[df['Stock'] > 40]
print(in_stock)
পান্ডাতে ডেটাফ্রেম সারি নির্বাচনের জন্য উন্নত কৌশল
বুলিয়ান ইনডেক্সিং ব্যবহার করে মৌলিক ফিল্টারিং ছাড়াও, পান্ডাস কলামের মানের উপর ভিত্তি করে সারি নির্বাচন করার জন্য উন্নত কৌশল অফার করে। একটি শক্তিশালী পদ্ধতি ব্যবহার করা হয় query() ফাংশন, যা আপনাকে একটি ক্যোয়ারী এক্সপ্রেশন সহ সারি ফিল্টার করতে দেয়, সিনট্যাক্সকে ক্লিনার করে এবং প্রায়শই আরও স্বজ্ঞাত করে। উদাহরণস্বরূপ, ব্যবহার করার পরিবর্তে df[df['Age'] > 25], তুমি লিখতে পারো df.query('Age > 25'). এই পদ্ধতিটি বিশেষভাবে উপযোগী যখন আরও জটিল অবস্থার সাথে কাজ করে বা যখন কলামের নামগুলিতে স্পেস থাকে। উপরন্তু, দ isin() আপনি যখন মানগুলির তালিকার উপর ভিত্তি করে সারিগুলি ফিল্টার করতে চান তখন ফাংশনটি উপকারী। উদাহরণস্বরূপ, সারি নির্বাচন করতে যেখানে 'সিটি' কলামের মান হয় 'শিকাগো' বা 'নিউ ইয়র্ক', আপনি ব্যবহার করতে পারেন df[df['City'].isin(['Chicago', 'New York'])].
আরেকটি কৌশল জড়িত loc এবং iloc সূচক দ্য loc ইনডেক্সারটি লেবেল-ভিত্তিক, আপনাকে সারি লেবেল এবং কলামের নামের উপর ভিত্তি করে সারি নির্বাচন করতে দেয়, যখন iloc পূর্ণসংখ্যা-অবস্থান-ভিত্তিক, সারি এবং কলাম সংখ্যা দ্বারা নির্বাচন সক্ষম করে। এই নমনীয়তা একটি ভিন্ন কলামে প্রয়োগ করা শর্তের উপর ভিত্তি করে সারি নির্বাচন করার জন্য বিশেষভাবে উপযোগী। এই ক্ষেত্রে, df.loc[df['Age'] > 25, 'Name'] 25 বছরের বেশি বয়সী ব্যক্তিদের নাম ফিরিয়ে দেবে। এই পদ্ধতিগুলি পান্ডাসে দক্ষতার সাথে ডেটা পরিচালনা এবং বিশ্লেষণ করার জন্য আপনার টুলকিটকে প্রসারিত করে, আরও পাঠযোগ্য এবং রক্ষণাবেক্ষণযোগ্য কোড অফার করে।
ডেটাফ্রেম সারি নির্বাচন সম্পর্কে সাধারণ প্রশ্ন এবং উত্তর
- আমি কিভাবে একাধিক শর্তের উপর ভিত্তি করে সারি নির্বাচন করতে পারি?
- আপনি ব্যবহার করতে পারেন query() ফাংশন বা লজিক্যাল অপারেটরগুলির সাথে শর্তগুলি একত্রিত করুন & এবং |. উদাহরণ স্বরূপ, df[(df['Age'] > 25) & (df['City'] == 'Chicago')].
- আমি কি মানের তালিকার উপর ভিত্তি করে সারি ফিল্টার করতে পারি?
- হ্যাঁ, ব্যবহার করুন isin() ফাংশন এই ক্ষেত্রে, df[df['City'].isin(['Chicago', 'New York'])].
- পার্থক্য কি loc এবং iloc?
- loc লেবেল ভিত্তিক, যখন iloc পূর্ণসংখ্যা-অবস্থান-ভিত্তিক। ব্যবহার করুন loc সারি/কলাম লেবেল সহ এবং iloc সারি/কলাম সূচক সহ।
- সারি ফিল্টার করার সময় আমি কীভাবে নির্দিষ্ট কলাম নির্বাচন করতে পারি?
- তুমি ব্যবহার করতে পার loc. উদাহরণ স্বরূপ, df.loc[df['Age'] > 25, ['Name', 'City']].
- সারি নির্বাচন করার সময় আমি কীভাবে অনুপস্থিত মানগুলি পরিচালনা করব?
- ব্যবহার dropna() অনুপস্থিত মান সহ সারি মুছে ফেলার ফাংশন, বা fillna() একটি নির্দিষ্ট মান দিয়ে তাদের প্রতিস্থাপন করতে।
- আমি কি সারি ফিল্টার করতে নিয়মিত এক্সপ্রেশন ব্যবহার করতে পারি?
- হ্যাঁ str.contains() সঙ্গে ফাংশন regex=True প্যারামিটার আপনাকে রেজেক্স প্যাটার্নের উপর ভিত্তি করে সারি ফিল্টার করতে দেয়। উদাহরণ স্বরূপ, df[df['Name'].str.contains('^A', regex=True)].
- কিভাবে আমি সূচকের উপর ভিত্তি করে সারি ফিল্টার করব?
- তুমি ব্যবহার করতে পার loc ইনডেক্স নামের সাথে। উদাহরণ স্বরূপ, df.loc[df.index == 'some_index'].
- যদি আমার কলামের নামগুলিতে স্পেস বা বিশেষ অক্ষর থাকে?
- ব্যবহার query() ফাংশন যা ব্যাকটিক্সের সাথে এই ধরনের কলামের নামগুলি পরিচালনা করতে পারে। উদাহরণ স্বরূপ, df.query('`column name` == value').
ডেটাফ্রেম সারি নির্বাচন কৌশল সম্পর্কে চূড়ান্ত চিন্তা
পান্ডাসে কলাম মানের উপর ভিত্তি করে ডেটাফ্রেম থেকে সারি নির্বাচন করা ডেটা ম্যানিপুলেশনের জন্য একটি গুরুত্বপূর্ণ দক্ষতা। বুলিয়ান ইনডেক্সিং সহ আলোচনা করা বিভিন্ন পদ্ধতি, query(), isin(), এবং এর সাথে লেবেল-ভিত্তিক এবং পূর্ণসংখ্যা-অবস্থান-ভিত্তিক সূচীকরণ loc এবং iloc, দক্ষতার সাথে ডেটা ফিল্টার করার জন্য শক্তিশালী সরঞ্জাম সরবরাহ করুন। এই কৌশলগুলির আয়ত্ত আরও ভাল ডেটা বিশ্লেষণ এবং ক্লিনার, আরও রক্ষণাবেক্ষণযোগ্য কোড সক্ষম করে।