كيفية إنشاء جداول التكرار في بايثون


الجدول التكراري هو جدول يعرض ترددات الفئات المختلفة. يعد هذا النوع من الجداول مفيدًا بشكل خاص لفهم توزيع القيم في مجموعة البيانات.

يشرح هذا البرنامج التعليمي كيفية إنشاء الجداول التكرارية في بايثون.

جدول تكراري أحادي الاتجاه لسلسلة

للعثور على ترددات القيم الفردية في سلسلة الباندا، يمكنك استخدام وظيفة value_counts() :

 import pandas as pd

#defineSeries
data = pd.Series([1, 1, 1, 2, 3, 3, 3, 3, 4, 4, 5])

#find frequencies of each value
data.value_counts()

3 4
1 3
4 2
5 1
2 1

يمكنك إضافة الوسيطة sort=False إذا كنت لا تريد فرز قيم البيانات حسب التردد:

 data.value_counts(sort= False )

1 3
2 1
3 4
4 2
5 1

وطريقة تفسير النتيجة هي كما يلي:

  • تظهر القيمة “1” 3 مرات في السلسلة.
  • تظهر القيمة “2” مرة واحدة في السلسلة.
  • تظهر القيمة “3” 4 مرات في السلسلة.

وما إلى ذلك وهلم جرا.

جدول ترددي أحادي الاتجاه لـ DataFrame

للعثور على ترددات Pandas DataFrame، يمكنك استخدام وظيفة الجدول الترافقي () ، والتي تستخدم بناء الجملة التالي:

جدول ترافقي (الفهارس والأعمدة)

ذهب:

  • الفهرس: اسم العمود المراد التجميع حسبه
  • الأعمدة: اسم يطلق على عمود التردد

على سبيل المثال، لنفترض أن لدينا DataFrame يحتوي على معلومات حول الصف والعمر والجنس لعشرة طلاب مختلفين في الفصل الدراسي. إليك كيفية العثور على تكرار كل درجة حرف:

 #create data
df = pd.DataFrame({'Grade': ['A','A','A','B','B', 'B', 'B', 'C', 'D', 'D '],
                   'Age': [18, 18, 18, 19, 19, 20, 18, 18, 19, 19],
                   'Gender': ['M','M', 'F', 'F', 'F', 'M', 'M', 'F', 'M', 'F']})

#view data
df

	Grade Age Gender
0 to 18 m
1 to 18 m
2 A 18 F
3 B 19 F
4 B 19 F
5 B 20 M
6 B 18 M
7 C 18 F
8 D 19 M
9 D 19 F 	  

#find frequency of each letter grade
pd.crosstab(index=df[' Grade '], columns=' count ')

col_0 count
Grade	
At 3
B4
C 1
D 2

وطريقة تفسير ذلك هي:

  • حصل 3 طلاب على علامة “A” في الفصل.
  • حصل 4 طلاب على درجة “B” في الفصل.
  • حصل طالب واحد على درجة “C” في الفصل.
  • حصل طالبان على درجة “D” في الفصل.

يمكننا استخدام بناء جملة مماثل للعثور على أعداد التكرارات للأعمدة الأخرى. على سبيل المثال، إليك كيفية العثور على التردد حسب العمر:

 pd.crosstab(index=df[' Age '], columns=' count ') 

col_0 count
Age	
18 5
19 4
20 1

وطريقة تفسير ذلك هي:

  • 5 طلاب أعمارهم 18 سنة.
  • 4 طلاب عمرهم 19 سنة.
  • 1 طالب عمره 20 سنة.

يمكنك أيضًا عرض الترددات بسهولة كنسب لمجموعة البيانات عن طريق القسمة على المجموع:

 #define crosstab
tab = pd.crosstab(index=df['Age'], columns='count')

#find proportions 
tab/tab.sum()

col_0 count
Age	
18 0.5
19 0.4
20 0.1

وطريقة تفسير ذلك هي:

  • 50٪ من الطلاب يبلغون من العمر 18 عامًا.
  • 40٪ من الطلاب يبلغون من العمر 19 عامًا.
  • 10٪ من الطلاب يبلغون من العمر 20 عامًا.

جداول التردد ثنائية الاتجاه لـ DataFrame

يمكنك أيضًا إنشاء جدول تكراري ثنائي الاتجاه لعرض ترددات متغيرين مختلفين في مجموعة البيانات. على سبيل المثال، إليك كيفية إنشاء جدول تكراري ثنائي الاتجاه لمتغيري العمر والصف الدراسي:

 pd.crosstab(index=df[' Age '], columns=df[' Grade '])


Grade A B C D
Age				
18 3 1 1 0
19 0 2 0 2
20 0 1 0 0

وطريقة تفسير ذلك هي:

  • هناك 3 طلاب يبلغون من العمر 18 عامًا حصلوا على “A” في الفصل.
  • يوجد طالب واحد يبلغ من العمر 18 عامًا وحصل على “B” في الفصل.
  • يوجد طالب واحد يبلغ من العمر 18 عامًا وحصل على درجة “C” في الفصل.
  • هناك 0 طلاب بعمر 18 عامًا حصلوا على “D” في الفصل.

وما إلى ذلك وهلم جرا.

يمكنك العثور على الوثائق الكاملة لوظيفة الجدول الترافقي () هنا .

Add a Comment

ایمئیل یایینلانمایاجاق ایسته‎نیله‎ن بوشلوقلار خاللانمیشدیر *