Python'da frekans tabloları nasıl oluşturulur


Frekans tablosu, farklı kategorilerin frekanslarını gösteren bir tablodur. Bu tablo türü özellikle bir veri kümesindeki değerlerin dağılımını anlamak için kullanışlıdır.

Bu eğitimde Python’da frekans tablolarının nasıl oluşturulacağı açıklanmaktadır.

Bir seri için tek yönlü frekans tablosu

Bir panda serisindeki bireysel değerlerin frekanslarını bulmak için value_counts() işlevini kullanabilirsiniz:

 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

Veri değerlerinin sıklığa göre sıralanmasını istemiyorsanız sort=False argümanını ekleyebilirsiniz:

 data.value_counts(sort= False )

1 3
2 1
3 4
4 2
5 1

Sonucun yorumlanma şekli şu şekildedir:

  • “1” değeri seride 3 kez karşımıza çıkar.
  • “2” değeri seride 1 kez görünür.
  • “3” değeri seride 4 kez geçmektedir.

Ve benzeri.

DataFrame için tek yönlü frekans tablosu

Bir pandanın DataFrame frekanslarını bulmak için aşağıdaki sözdizimini kullanan crosstab () işlevini kullanabilirsiniz:

çapraz tablo (dizinler, sütunlar)

Altın:

  • indeks: gruplandırılacak sütunun adı
  • sütunlar: sıklık sütununa verilecek ad

Örneğin, bir sınıftaki 10 farklı öğrencinin sınıf, yaş ve cinsiyet bilgilerini içeren bir DataFrame’imiz olduğunu varsayalım. Her harf notunun sıklığını şu şekilde bulabilirsiniz:

 #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

Bunu yorumlamanın yolu şudur:

  • Sınıfta 3 öğrenci “A” aldı.
  • Sınıfta 4 öğrenci “B” aldı.
  • Sınıfta 1 öğrenci “C” aldı.
  • Sınıfta 2 öğrenci “D” aldı.

Diğer sütunların sıklık sayılarını bulmak için benzer sözdizimini kullanabiliriz. Örneğin, yaşa göre sıklığı nasıl bulacağınız aşağıda açıklanmıştır:

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

col_0 count
Age	
18 5
19 4
20 1

Bunu yorumlamanın yolu şudur:

  • 5 öğrenci 18 yaşındadır.
  • 4 öğrenci 19 yaşındadır.
  • 1 öğrenci 20 yaşındadır.

Ayrıca frekansları toplama bölerek veri kümesinin oranları olarak da kolayca görüntüleyebilirsiniz:

 #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

Bunu yorumlamanın yolu şudur:

  • Öğrencilerin %50’si 18 yaşındadır.
  • Öğrencilerin %40’ı 19 yaşındadır.
  • Öğrencilerin %10’u 20 yaşındadır.

DataFrame için çift yönlü frekans tabloları

Ayrıca veri setindeki iki farklı değişkenin frekanslarını görüntülemek için iki yönlü bir frekans tablosu da oluşturabilirsiniz. Örneğin, Yaş ve Sınıf değişkenleri için iki yönlü bir sıklık tablosunun nasıl oluşturulacağı aşağıda açıklanmıştır:

 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

Bunu yorumlamanın yolu şudur:

  • Sınıfta “A” alan 18 yaşında 3 öğrenci bulunmaktadır.
  • Sınıfta 18 yaşında ve “B” alan 1 öğrenci bulunmaktadır.
  • Sınıfta 18 yaşında C notu alan 1 öğrenci bulunmaktadır.
  • Sınıfta 18 yaşında “D” alan 0 öğrenci bulunmaktadır.

Ve benzeri.

crosstab() işlevine ilişkin tüm belgeleri burada bulabilirsiniz.

Yorum ekle

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir