Mohamed Elnemr نشر 5 سبتمبر 2021 أرسل تقرير نشر 5 سبتمبر 2021 لدي dataframe كالتالي: df = pd.DataFrame({'a':list('abccbac')}) وأريد أن أقوم بحساب عدد مرات تكرار الحرف a و c و b بحيث تظهر كالتالي: c 3 a 2 b 2 كيف يمكنني فعل هذا؟ 2 اقتباس
0 Ahmed Sharshar نشر 5 سبتمبر 2021 أرسل تقرير نشر 5 سبتمبر 2021 يمكنك ببساطة استخدام الدالة groupby ثم استخدام count لحساب عدد تكرار كل عنصر كالتالي: In [1]: df = pd.DataFrame({'a':list('abccbac')}) df.groupby('a').count() Out[1]: a c 3 a 2 a 2 أو مباشرة يمكنك استخدام value_counts() لعد عدد القيم كالتالي: In [2]: df['a'].value_counts() Out[2]: c 3 a 2 b 2 اما اذا أردت حساب قيمة تكرار كل عنصر بشكل مفرداً ووضعها في عمود للتكرارات يمكنك استخدام transform كالتالي: In [4]: df['freq'] = df.groupby('a')['a'].transform('count') df Out[4]: a freq 0 a 2 1 b 3 2 c 2 3 c 2 4 b 3 5 a 2 6 b 3 اقتباس
0 Ali Haidar Ahmad نشر 5 سبتمبر 2021 أرسل تقرير نشر 5 سبتمبر 2021 إليك ماتحتاجه، أضفت طريقتين للقيام بالمهمة من دون استخدام توابع باندا (توابع باندا دوماً أقل كفاءة من ناحية الأداء): df = pd.DataFrame({'col':list('abccbac')}) df """ col 0 a 1 b 2 c 3 c 4 b 5 a 6 c """ #pivot_table ألطريقة الأولى هي استخدام الدالة df.pivot_table(index = ['col'], aggfunc ='size') """ col a 2 b 2 c 3 dtype: int64 """ #Counter يمكنك أيضاً استخدام from collections import Counter Counter(list(df['col'])) # Counter({'a': 2, 'b': 2, 'c': 3}) #لمعرفة عدد مرات تكرار عنصر معين operator يمكنك أيضاً استخدام import operator operator.countOf(list(df['col']), "a") # 2 1 اقتباس
السؤال
Mohamed Elnemr
لدي dataframe كالتالي:
وأريد أن أقوم بحساب عدد مرات تكرار الحرف a و c و b بحيث تظهر كالتالي:
كيف يمكنني فعل هذا؟
2 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.