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.