পান্ডাস গ্রুপবাই এগ্রিগেট

Pandasa Grupaba I Egrigeta



গ্রুপবাই কৌশলটি অপরিহার্য কারণ এটি কার্যকারিতা এবং কোড আকার উভয়ের ক্ষেত্রে ডেটা কতটা ভালভাবে একত্রিত করে। 'গ্রুপবাই' শব্দটি সাধারণত নিম্নলিখিত পদক্ষেপগুলি সহ একটি পদ্ধতি বর্ণনা করে:

  • বিভাজন : ডেটাসেটগুলিতে কিছু শর্ত প্রয়োগ করে, আমরা ডেটাকে দলে ভাগ করতে পারি।
  • আবেদন করা হচ্ছে : একটি প্রক্রিয়া যেখানে আমরা প্রতিটি গ্রুপে পৃথকভাবে একটি পদ্ধতি প্রয়োগ করি।
  • কম্বিনিং : groupby() পদ্ধতি ব্যবহার করার পর একটি ডাটা স্ট্রাকচার তৈরি করতে বিভিন্ন ডেটাসেটকে একত্রিত করার একটি পদ্ধতি।

একত্রিতকরণ প্রক্রিয়ায়, প্রতিটি গ্রুপের জন্য একটি সারসংক্ষেপ পরিসংখ্যান গণনা করা হয়। প্রতিটি গ্রুপের জন্য, সমষ্টিগত পদ্ধতি একটি সমষ্টিগত মান (একক মান) প্রদান করে। আমরা গ্রুপবাই ফাংশন ব্যবহার করে ডাটাকে গ্রুপে ভাগ করার পর গ্রুপ করা ডেটার উপর বেশ কিছু অ্যাগ্রিগেটিং অপারেশন করতে পারি।







কেন পান্ডারা ডেটা একত্রিতকরণের বিভিন্ন পদ্ধতি প্রদান করে?

পান্ডা ডেটা বিশ্লেষণ এবং একত্রীকরণে সহায়তা করার জন্য বিস্তৃত বৈশিষ্ট্য এবং ফাংশন অফার করে। পিভট(), গ্রুপবাই(), এবং পিভট_টেবল() পদ্ধতির ব্যবহার, উদাহরণস্বরূপ, প্রতিটি ডেটা কীভাবে একত্রিত হবে তার একটি ভিন্ন দৃষ্টিভঙ্গি অফার করে। তারা সহজভাবে পুনরায় প্যাকেজ করার পরিবর্তে বিভিন্ন কাজ সম্পাদনের জন্য ব্যবহারিক পন্থা প্রদান করে।



পান্ডাসে কিভাবে .agg() ফাংশন ব্যবহার করবেন

একটি সাধারণ গড় বা মানের সমষ্টি হল একত্রীকরণ ফাংশন যা সবচেয়ে বেশি ব্যবহৃত হয়। আপনি একটি সমষ্টিগত ফাংশন কল করতে একটি ডেটাফ্রেমের কলাম বা একাধিক কলাম ব্যবহার করতে পারেন। আপনি পান্ডাস গ্রুপবাই পদ্ধতি ব্যবহার করে ডেটা একত্রিত করার অনেক উপায় দেখতে পাবেন। পদ্ধতিটি কতটা সহজ তা প্রদর্শন করতে, আসুন নীচে দেওয়া কয়েকটি উদাহরণ দেখি। মৌলিক গণিত ক্রিয়াকলাপ যেমন যোগফল, সর্বনিম্ন, সর্বোচ্চ, গড় পরম বিচ্যুতি, মান বিচ্যুতি, গড়, মধ্যক, প্রকরণ এবং পণ্যগুলি সর্বাধিক ব্যবহৃত বিল্ট-ইন একত্রীকরণ ফাংশনগুলির মধ্যে রয়েছে। ডেটা সংক্ষিপ্ত করার জন্য, আমরা groupby এবং agg() ফাংশন একত্রিত করতে পারি।



উদাহরণ # 01: groupby.agg() ফাংশন ব্যবহার করে ডেটা গ্রুপ করে কলামের সমষ্টি নির্ধারণ করুন

আমরা প্রথমে pd.DataFrame() ফাংশন ব্যবহার করে একটি ডেটাফ্রেম তৈরি করব যাতে আমরা ডেটাফ্রেমের কলাম বা কলাম থেকে ডেটা গ্রুপ করতে পারি এবং তারপরে তাদের গড় মান নির্ধারণ করতে পারি। ডাটাফ্রেম তৈরি করার আগে আমাদের অবশ্যই পান্ডা এবং নম্পি লাইব্রেরির মডিউল আমদানি করতে হবে।





আপনি দেখতে পাচ্ছেন, আমরা আমাদের ডেটাফ্রেম তৈরি করতে পান্ডা অভিধান ব্যবহার করেছি। আমাদের df ডেটাফ্রেমে চারটি কলাম রয়েছে: “রোগী” “গ্রুপ”, “বয়স” এবং “রক্তের বোতল”। ডেটা মান ('আলি', 'জন', 'মাইক', 'মাইক', 'জন', 'আলি', 'আলি', 'মাইক') কলাম 'রোগী' দ্বারা ধারণ করে যেখানে ডেটা মান ('এ' ', 'A', 'B', 'C', 'A', 'C', 'C', 'B'), (21, 22, 24, 21, 20, 24, 22, 22) এবং ( 2, 3, 1, 1, 2, 3, 2, 1) যথাক্রমে 'গ্রুপ', 'বয়স' এবং 'ব্লাড_বোতল' কলামে রয়েছে। ধরা যাক আমাদের 'ব্লাড_বোতল' কলামে 'গ্রুপ' কলামের মানগুলিকে গ্রুপ করে মানগুলির যোগফল নির্ধারণ করতে হবে।



গ্রুপ ডেটা 'A'-এর জন্য, 'ব্লাড_বোতল'-এর মানের সমষ্টি হল 7। গ্রুপ মান 'B' এবং 'C'-এর জন্য, 'রক্ত_বোতল'-এর মানের সমষ্টি যথাক্রমে 2 এবং 6। প্রতিটি গ্রুপের যোগফল নির্ণয় করতে আমরা একাধিক কলামও গোষ্ঠীবদ্ধ করতে পারি।

যেমনটি লক্ষ্য করা যায়, আমরা প্রতিটি নির্দিষ্ট কলামে বিভাগগুলির গ্রুপ তৈরি করতে groupby() ফাংশনের ভিতরে কলাম লেবেলের একটি তালিকা পাস করেছি, যেমন, ['রোগী', 'গ্রুপ']। নির্দিষ্ট কলামের প্রতিটি গ্রুপের জন্য, আমরা 'রক্ত_বোতল'-এ মানের সমষ্টি নির্ধারণ করেছি। উদাহরণস্বরূপ, 'আলি' 'গ্রুপ' কলামের মান A এবং C-তে রয়েছে। A গ্রুপে, আলীর জন্য 'ব্লাড_বোতল'-এর মানের সমষ্টি হল 2, এবং গ্রুপ 'C'-তে 5।

উদাহরণ # 02: groupby.agg() ফাংশন ব্যবহার করে ডেটাফ্রেমের একক কলামে একাধিক ফাংশন প্রয়োগ করা

পান্ডাস ফাংশন agg() ব্যবহার করে “groupby()” পদ্ধতিতে একাধিক সমষ্টি প্রয়োগ করা যেতে পারে। একটি কলযোগ্য তালিকা পদ্ধতিতে পাঠানো যেতে পারে। আসুন দেখি কিভাবে আমরা নম্পি লাইব্রেরির অন্তর্নির্মিত পদ্ধতিগুলি ব্যবহার করে আমাদের ডেটা একত্রিত করতে পারি। আগের উদাহরণের বিপরীতে, আমরা ডেটাফ্রেমের একক কলামে একাধিক ফাংশন প্রয়োগ করব। pd.DataFrame() ফাংশনটি সংখ্যাসূচক মান সম্বলিত কমপক্ষে একটি কলাম সহ এর জন্য একটি ডেটাফ্রেম তৈরি করতে ব্যবহার করা হবে।


প্রয়োজনীয় ডেটাফ্রেম তৈরি করা হয়েছে একটি সংখ্যাসূচক কলাম যেমন 'চিহ্ন' সহ মান 41, 40, 35, 39, 49, 31, 34, এবং 42। আরও 3টি কলাম রয়েছে 'ছাত্র', 'বিষয়' এবং 'ডিগ্রী' আমাদের ডেটাফ্রেমে গ্রুপবাই() ফাংশন ব্যবহার করে গ্রুপে ভাগ করা যায়। 'ছাত্র' এবং 'বিষয়' কলামের মানগুলি হল ('হ্যারি', 'রন', 'হ্যারি', 'লানা', 'স্যাম', 'রন', 'লানা', 'ম্যাক্স') এবং ('C++' , 'JAVA', 'Python', 'Python', 'AI', 'JAVA', 'C++', 'AI')। যেখানে কলাম ডিগ্রীতে স্ট্রিং হিসাবে ডেটা মান রয়েছে, যেমন, ('Ms', 'Bs', 'Bs', 'Ms', 'Ms', 'Ms', 'Bs', 'Bs')। ধরুন আমাদের কলাম 'বিষয়'-এর ডেটা গ্রুপ করতে হবে এবং প্রতিটি গ্রুপ করা ডেটার জন্য কলাম 'চিহ্ন'-এর গড় এবং যোগফল উভয়ই নির্ধারণ করতে হবে।

আমরা গ্রুপবাই() ফাংশনের মধ্যে একটি স্ট্রিং হিসাবে 'সাবজেক্ট' কলামের নাম নির্দিষ্ট করেছি যাতে ডেটাকে ক্যাটাগরির গ্রুপে রূপান্তর করা যায়। মার্কস কলামের জন্য, আমরা agg() পদ্ধতি ব্যবহার করেছি, এবং agg() ফাংশনের ভিতরে আমরা কলামের বিষয়গুলিতে প্রতিটি গ্রুপের ডেটার যোগফল এবং গড় খুঁজে পেতে numpy ফাংশন np.sum এবং np.mean নির্দিষ্ট করেছি। গ্রুপ মান 'AI'-এর যোগফল এবং গড় মান যথাক্রমে 91 এবং 45.5। 'C++' মানের জন্য চিহ্নের যোগফল হল 75, এবং গড় মান হল 37.5। JAVA গ্রুপের জন্য, মার্কের যোগফল হল 71 এবং গড় মান হল 35.5, যেখানে পাইথনের যোগফল এবং গড় মান হল যথাক্রমে 74 এবং 37৷

উদাহরণ # 03: groupby.agg() ফাংশন ব্যবহার করে ডেটাফ্রেমের একাধিক কলামে একাধিক ফাংশন প্রয়োগ করা

একটি একক ডেটাফ্রেমের কলামে বিভিন্ন ফাংশন প্রয়োগ করার পরিবর্তে, আমরা বিভিন্ন সাংখ্যিক কলামে একাধিক ফাংশন প্রয়োগ করতে পারি। আমরা বিভিন্ন ডেটাফ্রেমের কলামে একটি নির্দিষ্ট একত্রীকরণ পদ্ধতি প্রয়োগ করতে ইনপুট হিসাবে agg() ফাংশনে একটি অভিধান ব্যবহার করতে পারি। একাধিক সাংখ্যিক কলাম সহ একটি ডেটাফ্রেম তৈরি করার আগে পান্ডা এবং নম্পি লাইব্রেরিগুলি আমদানি করা যাক।

'প্লেয়ার', 'least_score,' 'highest_score' এবং 'location' নামে নতুন তৈরি করা ডেটাফ্রেমে চারটি কলাম রয়েছে। 'প্লেয়ার' কলামে, আমরা কয়েকটি প্লেয়ারের নাম স্ট্রিং ডেটা মান হিসাবে সংরক্ষণ করেছি ('লিও', 'আলেক্স', 'লিও', 'ফিন', 'লিও', 'আলেক্স', 'ফিন', ' ফিন'), 'least_score' কলামে কিছু ম্যাচের জন্য খেলোয়াড়দের সর্বনিম্ন স্কোর রয়েছে (12, 34, 2, 21, 9, 1, 0, 34), যখন 'highest_score' কলামে আমাদের খেলোয়াড়দের সর্বোচ্চ স্কোর রয়েছে (12, 34, 2, 21, 9, 1, 0, 34) এবং কলাম 'অবস্থান'-এ এমন ভেন্যুগুলির নাম রয়েছে যেখানে খেলোয়াড়রা তাদের ম্যাচ খেলেছে ('ফ্রান্স', 'ইংল্যান্ড', 'দুবাই', ' দুবাই', 'ইংল্যান্ড', 'ফ্রান্স', 'দুবাই', 'ফ্রান্স')।

ধরা যাক 'প্লেয়ার্স' কলামে ডেটা গোষ্ঠীবদ্ধ করার পরে, আমাদের 'least_score' কলামের মানগুলির গড় এবং প্রতিটি গ্রুপের জন্য 'highest_score' ডেটা মানগুলির যোগফল খুঁজে বের করতে হবে।

agg() ফাংশনের ভিতরে, আমরা প্রতিটি গ্রুপের বিপরীতে একটি নির্দিষ্ট কলামের যোগফল এবং গড় মান খুঁজে পেতে একটি পাইথন অভিধান {‘highest_score’ : ‘sum’, ‘least_score’ : ‘mean’} পাস করেছি। এটি দেখা যায় যে গোষ্ঠীবদ্ধ মান অ্যালেক্সের 'সর্বোচ্চ_স্কোর' মানের যোগফল 132 এবং 'সর্বনিম্ন_স্কোর' মানের গড় 17.5। 'ফিন'-এর জন্য মানের যোগফল হল 199 এবং গড় হল যথাক্রমে 'highest_score' এবং 'least_score' কলামে 18.3333333। গ্রুপ মান লিওর 'সর্বোচ্চ_স্কোর'-এ 180 এর যোগফল এবং 'সর্বনিম্ন_স্কোর'-এ গড় মান 7.666667।

উপসংহার

এই টিউটোরিয়ালে, আমরা পান্ডায় গ্রুপবাই() এবং একত্রিতকরণ ফাংশন নিয়ে আলোচনা করেছি। কিভাবে groupby.agg() ফাংশন ব্যবহার করতে হয় তাও আমরা আলোচনা করেছি। একক এবং একাধিক কলামের ডেটা গোষ্ঠীবদ্ধ করে কীভাবে ডেটাফ্রেম কলামে একটি একক একত্রীকরণ ফাংশন ব্যবহার করতে হয়, একটি ডেটাফ্রেমের একক কলামে কীভাবে একাধিক একত্রীকরণ ফাংশন প্রয়োগ করতে হয় এবং কীভাবে একাধিক প্রয়োগ করতে হয় তা শেখানোর জন্য আমরা এই নিবন্ধে তিনটি উদাহরণ প্রয়োগ করেছি। groupby.agg() ফাংশন ব্যবহার করে ডেটাফ্রেমের একাধিক কলামে একত্রিতকরণ ফাংশন।