"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > كيفية إضافة عمود باستخدام تحويل Pandas في GroupBy DataFrames؟

كيفية إضافة عمود باستخدام تحويل Pandas في GroupBy DataFrames؟

تم النشر بتاريخ 2024-10-31
تصفح:724

How to Add a Column Using Pandas Transform in GroupBy DataFrames?

إضافة عمود إلى GroupBy DataFrame باستخدام Pandas Transform

عند العمل مع عمليات groupby في الباندا، غالبًا ما يكون من المفيد إضافة عمود جديد إلى إطار البيانات الناتج. إحدى الطرق لتحقيق ذلك هي استخدام الدالة .map()، كما هو موضح في المثال. ومع ذلك، هناك طريقة بديلة وأكثر وضوحًا وهي استخدام الدالة .transform().

.transform() تسمح لنا بتطبيق دالة على كل مجموعة في إطار البيانات وإرجاع سلسلة مع النتائج. ستحتوي السلسلة التي تم إرجاعها على فهرس محاذٍ لإطار البيانات الأصلي.

للتوضيح، لنبدأ بإطار البيانات المقدم:

df = pd.DataFrame({'c': [1, 1, 1, 2, 2, 2, 2], 'type': ['m', 'n', 'o', 'm', 'm', 'n', 'n']})

هدفنا هو حساب قيم النوع لكل c وإضافة عمود بحجم c.

g = df.groupby('c')['type'].value_counts().reset_index(name='t')

يحسب هذا الكود القيم لكل مجموعة وينشئ عمودًا جديدًا باسم t.

لإضافة عمود الحجم باستخدام .transform()، يمكننا قم بما يلي:

g['size'] = df.groupby('c')['type'].transform('size')

.transform('size') يطبق دالة الحجم على كل مجموعة، مما يُرجع حجم كل مجموعة. تتم محاذاة السلسلة الناتجة مع فهرس إطار البيانات الأصلي، مما يسمح لنا بإضافته كعمود جديد إلى g.

سيكون الناتج عبارة عن إطار بيانات مع عمود إضافي يسمى الحجم:

   c type  t  size
0  1    m  1     3
1  1    n  1     3
2  1    o  1     3
3  2    m  2     4
4  2    n  2     4

يوفر استخدام .transform() طريقة أكثر إيجازًا ومباشرة لإضافة عمود مرة أخرى إلى إطار البيانات الأصلي من تجميع حسب المجموعة.

بيان الافراج أعيد طبع هذه المقالة على: 1729308259 في حالة وجود أي انتهاك، يرجى الاتصال بـ [email protected] لحذفها
أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3