পান্ডাসে সারি পুনরাবৃত্তি বোঝা
পাইথনে ডেটা নিয়ে কাজ করার সময়, পান্ডাস লাইব্রেরি ডেটা ম্যানিপুলেশন এবং বিশ্লেষণের জন্য শক্তিশালী সরঞ্জাম সরবরাহ করে। একটি সাধারণ কাজ হল একটি ডেটাফ্রেমের সারিগুলির উপর পুনরাবৃত্তি করা এবং কলামের নাম দ্বারা পৃথক উপাদানগুলিকে অ্যাক্সেস এবং প্রক্রিয়া করা। এই নির্দেশিকাটি আপনাকে কীভাবে সহজে এটি সম্পন্ন করতে হয় তা বুঝতে সাহায্য করবে।
আমরা একটি পান্ডাস ডেটাফ্রেমে সারি পুনরাবৃত্তির জন্য বিভিন্ন পদ্ধতি অন্বেষণ করব, ব্যবহারিক উদাহরণ এবং ব্যাখ্যা সহ। শেষ পর্যন্ত, আপনার নিজের প্রকল্পগুলিতে এই পদ্ধতিগুলিকে কীভাবে কার্যকরভাবে ব্যবহার করা যায় সে সম্পর্কে আপনার স্পষ্ট ধারণা থাকবে।
আদেশ | বর্ণনা |
---|---|
iterrows() | ডেটাফ্রেমের প্রতিটি সারির জন্য সূচক এবং সারি ডেটা প্রদান করে এমন একটি পুনরাবৃত্তিকারী তৈরি করে। |
itertuples() | দ্রুত সারি পুনরাবৃত্তি প্রদান করে ডেটাফ্রেম সারিগুলির টুপল নামক একটি পুনরাবৃত্তিকারী প্রদান করে। |
apply() | ডেটাফ্রেমের একটি নির্দিষ্ট অক্ষ (সারি বা কলাম) বরাবর একটি ফাংশন প্রয়োগ করে। |
axis | অক্ষ নির্দিষ্ট করার জন্য apply() ফাংশনের একটি প্যারামিটার, কলামের জন্য 0 এবং সারির জন্য 1। |
enumerate() | একটি পুনরাবৃত্তিযোগ্য একটি কাউন্টার যোগ করে, পুনরাবৃত্তি করার সময় সূচক পাওয়ার জন্য দরকারী। |
f-string | কোঁকড়া ধনুর্বন্ধনী {} ব্যবহার করে স্ট্রিং লিটারালের ভিতরে এক্সপ্রেশন এম্বেড করার জন্য পাইথনে একটি বিন্যাস সিনট্যাক্স। |
পান্ডাদের সাথে সারিগুলির উপর পুনরাবৃত্তি: পদ্ধতি ব্যাখ্যা করা হয়েছে
প্রদত্ত স্ক্রিপ্টগুলি একটি পান্ডাস ডেটাফ্রেমে সারিগুলির উপর পুনরাবৃত্তি করার জন্য বিভিন্ন পদ্ধতি প্রদর্শন করে। প্রথম পদ্ধতি ব্যবহার করে iterrows() ফাংশন, যা একটি পুনরাবৃত্তিকারী তৈরি করে যা প্রতিটি সারির জন্য সূচক এবং সারি ডেটা দেয়। এই পদ্ধতিটি আপনাকে সারি উপাদানগুলিকে তাদের কলামের নাম দ্বারা অ্যাক্সেস করতে দেয়, এটি নির্দিষ্ট মানগুলি মুদ্রণ বা ম্যানিপুলেট করতে সহজ করে তোলে। দ্বিতীয় পদ্ধতি, ব্যবহার করে itertuples(), অনুরূপ কিন্তু প্রতিটি সারির জন্য nametuples ফেরত দিয়ে আরও ভালো কর্মক্ষমতা অফার করে। এই পদ্ধতিটি দ্রুততর কারণ এটি প্রতিটি সারির জন্য একটি সিরিজ অবজেক্ট তৈরি করার ওভারহেড এড়ায়, যা বড় ডেটাসেটের জন্য বিশেষভাবে উপকারী।
দেখানো আরেকটি পদ্ধতি হল apply() ফাংশন, যা ডেটাফ্রেমের একটি প্রদত্ত অক্ষ বরাবর একটি নির্দিষ্ট ফাংশন প্রয়োগ করে। অক্ষ পরামিতি 1 এ সেট করে, ফাংশনটি প্রতিটি সারিতে প্রয়োগ করা হয়। এই পদ্ধতিটি বহুমুখী, আপনাকে সারি-ভিত্তিক ক্রিয়াকলাপের জন্য কাস্টম ফাংশন সংজ্ঞায়িত করার অনুমতি দেয়। অবশেষে, ব্যবহার enumerate() সঙ্গে iterrows() পুনরাবৃত্তির সময় সারি সূচকের ট্র্যাক রাখার একটি উপায় প্রদান করে। এটি এমন কাজের জন্য উপযোগী হতে পারে যেগুলির জন্য সারি নম্বর প্রয়োজন বা আরও জটিল অপারেশনের জন্য যেখানে ডেটাফ্রেমের অবস্থান গুরুত্বপূর্ণ। একত্রে, এই পদ্ধতিগুলি ডেটাফ্রেম সারিগুলির উপর পুনরাবৃত্তি করার জন্য, কর্মক্ষমতা এবং কার্যকারিতার উপর ভিত্তি করে বিভিন্ন চাহিদা পূরণের জন্য বিভিন্ন বিকল্পের প্রস্তাব দেয়।
একটি পান্ডাস ডেটাফ্রেমে সারির উপর পুনরাবৃত্তি করতে iterrows() ব্যবহার করে
পান্ডাস লাইব্রেরির সাথে পাইথন
import pandas as pd
# Create a sample DataFrame
data = {'c1': [10, 11, 12], 'c2': [100, 110, 120]}
df = pd.DataFrame(data)
# Iterate over rows using iterrows()
for index, row in df.iterrows():
print(row['c1'], row['c2'])
# Output:
# 10 100
# 11 110
# 12 120
ভাল পারফরম্যান্সের জন্য itertuples() দিয়ে পুনরাবৃত্তি করা হচ্ছে
পান্ডাস লাইব্রেরির সাথে পাইথন
import pandas as pd
# Create a sample DataFrame
data = {'c1': [10, 11, 12], 'c2': [100, 110, 120]}
df = pd.DataFrame(data)
# Iterate over rows using itertuples()
for row in df.itertuples():
print(row.c1, row.c2)
# Output:
# 10 100
# 11 110
# 12 120
ডেটাফ্রেম প্রয়োগ () পদ্ধতির সাথে সারিগুলি অ্যাক্সেস করা
পান্ডাস লাইব্রেরি সহ পাইথন
import pandas as pd
# Create a sample DataFrame
data = {'c1': [10, 11, 12], 'c2': [100, 110, 120]}
df = pd.DataFrame(data)
# Define a function to apply to each row
def print_row(row):
print(row['c1'], row['c2'])
# Apply the function to each row
df.apply(print_row, axis=1)
# Output:
# 10 100
# 11 110
# 12 120
DataFrame.iterrows() এবং গণনা ব্যবহার করে
পান্ডাস লাইব্রেরির সাথে পাইথন
import pandas as pd
# Create a sample DataFrame
data = {'c1': [10, 11, 12], 'c2': [100, 110, 120]}
df = pd.DataFrame(data)
# Iterate over rows using iterrows() and enumerate()
for i, (index, row) in enumerate(df.iterrows()):
print(f'Index: {index}, Row {i}: {row["c1"]}, {row["c2"]}')
# Output:
# Index: 0, Row 0: 10, 100
# Index: 1, Row 1: 11, 110
# Index: 2, Row 2: 12, 120
পান্ডাসে সারি পুনরাবৃত্তির জন্য অতিরিক্ত পদ্ধতি অন্বেষণ করা
এর বাইরেও সাধারণভাবে ব্যবহৃত পদ্ধতি যেমন iterrows() এবং itertuples(), পান্ডাসে ডেটাফ্রেম সারিগুলির উপর পুনরাবৃত্তি করার জন্য অন্যান্য কৌশল উপলব্ধ রয়েছে। যেমন একটি পদ্ধতি ব্যবহার করা হয় iloc সূচক দ্য iloc indexer আপনাকে তাদের পূর্ণসংখ্যা-অবস্থান ভিত্তিক ইন্ডেক্সিং দ্বারা সারি এবং কলামগুলি অ্যাক্সেস করতে দেয়, এটিকে পুনরাবৃত্তির জন্য একটি শক্তিশালী হাতিয়ার করে তোলে। এই পদ্ধতিটি বিশেষভাবে উপযোগী যখন আপনাকে নির্দিষ্ট সারি বা কলামগুলিকে সিরিজ বা নেমটুপলে রূপান্তর না করে অপারেশন করতে হবে। সঙ্গে সমন্বয় একটি লুপ ব্যবহার করে iloc, আপনি সারি উপাদানগুলিকে দক্ষতার সাথে অ্যাক্সেস এবং ম্যানিপুলেট করতে পারেন।
আরেকটি পদ্ধতির ব্যবহার জড়িত DataFrame.query() পুনরাবৃত্তির আগে নির্দিষ্ট অবস্থার উপর ভিত্তি করে সারি ফিল্টার করার পদ্ধতি। এই পদ্ধতিটি SQL-এর মতো ক্যোয়ারী সিনট্যাক্স ব্যবহার করে সংক্ষিপ্ত এবং পঠনযোগ্য ডেটা ফিল্টারিংয়ের অনুমতি দেয়। DataFrame ফিল্টার করার পরে, আপনি ফিল্টার করা সারিগুলি প্রক্রিয়া করার জন্য পূর্বে আলোচনা করা পুনরাবৃত্তি পদ্ধতিগুলির যেকোনো একটি ব্যবহার করতে পারেন। অতিরিক্তভাবে, Python-এ তালিকার বোধগম্যতা আরও জটিল ডেটা ট্রান্সফর্মেশন এবং পুনরাবৃত্তির জন্য পান্ডাস অপারেশনের সাথে একত্রিত করা যেতে পারে। এই উন্নত কৌশলগুলি বৃহত্তর নমনীয়তা এবং দক্ষতা প্রদান করে, বিশেষ করে যখন বড় ডেটাসেট বা জটিল ডেটা ম্যানিপুলেশন কাজগুলি নিয়ে কাজ করে।
পান্ডাগুলিতে সারিগুলির পুনরাবৃত্তি সম্পর্কে সাধারণ প্রশ্ন
- DataFrame সারিগুলির উপর পুনরাবৃত্তি করার সবচেয়ে কার্যকর উপায় কি?
- দ্য itertuples() পদ্ধতিটি সাধারণত সারিগুলির উপর পুনরাবৃত্তি করার জন্য সবচেয়ে কার্যকর কারণ এটি প্রতিটি সারির জন্য সিরিজ অবজেক্ট তৈরির ওভারহেড এড়ায়।
- পুনরাবৃত্তি করার সময় আমি কিভাবে ডেটাফ্রেম মান পরিবর্তন করতে পারি?
- তুমি ব্যবহার করতে পার loc বা iloc ডাটাফ্রেম মানগুলি সরাসরি পরিবর্তন করতে আপনার লুপের মধ্যে।
- পার্থক্য কি iterrows() এবং itertuples()?
- iterrows() প্রতিটি সারি একটি সিরিজ হিসাবে প্রদান করে, যখন itertuples() প্রতিটি সারি একটি nametuple হিসাবে প্রদান করে, যা দ্রুত এবং আরও মেমরি-দক্ষ।
- আমি কি ডেটাফ্রেম সারিগুলির সাথে তালিকা বোঝার ব্যবহার করতে পারি?
- হ্যাঁ, তালিকা বোঝা আরও কমপ্যাক্ট এবং দক্ষ ডেটা রূপান্তরের জন্য ব্যবহার করা যেতে পারে।
- পুনরাবৃত্তির আগে আমি কীভাবে সারিগুলি ফিল্টার করব?
- ব্যবহার query() শর্তের উপর ভিত্তি করে সারি ফিল্টার করার জন্য পদ্ধতি বা বুলিয়ান ইনডেক্সিং।
- এটা কি শুধুমাত্র নির্দিষ্ট কলামের উপর পুনরাবৃত্তি করা সম্ভব?
- হ্যাঁ, আপনি নির্দিষ্ট কলামগুলি ব্যবহার করে অ্যাক্সেস করে পুনরাবৃত্তি করতে পারেন df[column_name] আপনার লুপের মধ্যে।
- আমি কিভাবে প্রতিটি সারিতে একটি ফাংশন প্রয়োগ করব?
- ব্যবহার apply() অক্ষ প্যারামিটার সহ পদ্ধতি 1 এ সেট করা হয়েছে।
- ব্যবহার কর্মক্ষমতা প্রভাব কি iterrows()?
- iterrows() তুলনায় ধীর itertuples() এবং যখন সিরিজ অবজেক্টের পঠনযোগ্যতা কর্মক্ষমতার উপর প্রয়োজন হয় তখন ব্যবহার করা উচিত।
ডেটাফ্রেম সারি পুনরাবৃত্তির বিষয়ে চূড়ান্ত চিন্তাভাবনা
পান্ডাস ডেটাফ্রেমে সারির উপর পুনরাবৃত্তি করার বিভিন্ন পদ্ধতি আয়ত্ত করা ডেটা ম্যানিপুলেশন কাজগুলিতে আরও নমনীয়তা এবং দক্ষতার জন্য অনুমতি দেয়। আপনি চয়ন কিনা iterrows() পাঠযোগ্যতার জন্য, itertuples() কর্মক্ষমতা জন্য, বা apply() কাস্টম ফাংশনগুলির জন্য পদ্ধতি, এই কৌশলগুলি বোঝার ফলে আপনার বড় ডেটাসেটগুলি কার্যকরভাবে পরিচালনা করার ক্ষমতা বৃদ্ধি পাবে। আপনার নির্দিষ্ট প্রয়োজনীয়তা এবং কর্মপ্রবাহের জন্য কোনটি সবচেয়ে উপযুক্ত তা নির্ধারণ করতে এই পদ্ধতিগুলি নিয়ে পরীক্ষা করুন৷