ডক্স কিভাবে কী হিসেবে আউটপুট কলাম নামের সাথে একটি অভি ব্যবহার করে একটি সময়ে একটি groupby বস্তুর উপর একাধিক ফাংশন প্রয়োগ করতে দেন:
In [563]: grouped['D'].agg({'result1' : np.sum,
.....: 'result2' : np.mean})
.....:
Out[563]:
result2 result1
A
bar -0.579846 -1.739537
foo -0.280588 -1.402938
তবে এটি কেবল সিরিজ গ্রুপবাই অবজেক্টে কাজ করে। এবং যখন ডিক একইভাবে একটি গ্রুপবাই ডেটাফ্রেমে স্থানান্তরিত হয়, তখন এটি কীগুলি কলামের নাম হিসাবে প্রত্যাশায় ফাংশনটি প্রয়োগ করা হবে।
আমি যা করতে চাই তা হ'ল কয়েকটি কলামগুলিতে একাধিক ফাংশন প্রয়োগ করা (তবে নির্দিষ্ট কলামগুলি একাধিকবার পরিচালিত হবে)। এছাড়াও, কিছু ফাংশন গ্রুপবাই অবজেক্টের অন্যান্য কলামগুলির উপর নির্ভর করবে (যেমন সামিফ ফাংশন)। আমার বর্তমান সমাধানটি কলাম অনুসারে কলামে যাওয়া এবং উপরের কোডের মতো কিছু করা, অন্যান্য সারিগুলির উপর নির্ভরশীল ফাংশনগুলির জন্য ল্যাম্বডাস ব্যবহার করা। তবে এটি একটি দীর্ঘ সময় নিচ্ছে, (আমার মনে হয় একটি গ্রুপবাইয়ের মাধ্যমে কোনও পুনরুক্তি করতে অনেক সময় লাগে)। আমাকে এটিকে পরিবর্তন করতে হবে যাতে আমি একক রানে পুরো গ্রুপবাইয়ের মাধ্যমে পুনরাবৃত্তি করতে পারি, তবে আমি ভাবছি যে এটি কিছুটা পরিষ্কারভাবে করার জন্য পান্ডাসের মতো কোনও বিল্ড ইন আছে।
উদাহরণস্বরূপ, আমি এরকম কিছু চেষ্টা করেছি
grouped.agg({'C_sum' : lambda x: x['C'].sum(),
'C_std': lambda x: x['C'].std(),
'D_sum' : lambda x: x['D'].sum()},
'D_sumifC3': lambda x: x['D'][x['C'] == 3].sum(), ...)
তবে প্রত্যাশা অনুযায়ী আমি কী-এরর পেয়েছি (যেহেতু ডেটা ফ্রেম থেকে চাওয়া হলে কীগুলি একটি কলাম হতে হবে agg
)।
আমি যা করতে চাই তাতে করার মতো কোনও বিলম্বিত কি আছে, বা এই কার্যকারিতাটি যুক্ত হওয়ার সম্ভাবনা রয়েছে, বা আমাকে নিজেই গ্রুপবাই দিয়ে নিজেই পুনরাবৃত্তি করতে হবে?
ধন্যবাদ