Cara membuat tabel frekuensi dengan python


Tabel frekuensi adalah tabel yang menampilkan frekuensi dari berbagai kategori. Jenis tabel ini sangat berguna untuk memahami distribusi nilai dalam kumpulan data.

Tutorial ini menjelaskan cara membuat tabel frekuensi dengan Python.

Tabel frekuensi satu arah untuk suatu rangkaian

Untuk mencari frekuensi nilai individual dalam rangkaian pandas, Anda dapat menggunakan fungsi 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

Anda dapat menambahkan argumen sort=False jika Anda tidak ingin nilai data diurutkan berdasarkan frekuensi:

 data.value_counts(sort= False )

1 3
2 1
3 4
4 2
5 1

Cara menafsirkan hasilnya adalah sebagai berikut:

  • Nilai “1” muncul 3 kali dalam rangkaian.
  • Nilai “2” muncul 1 kali dalam rangkaian.
  • Nilai “3” muncul 4 kali dalam rangkaian.

Dan seterusnya.

Tabel frekuensi satu arah untuk DataFrame

Untuk mengetahui frekuensi pandas DataFrame Anda dapat menggunakan fungsi crosstab () , yang menggunakan sintaks berikut:

tab silang (indeks, kolom)

Emas:

  • indeks: nama kolom yang akan dikelompokkan
  • kolom: nama untuk diberikan pada kolom frekuensi

Misalnya, kita memiliki DataFrame yang berisi informasi tentang nilai, usia, dan jenis kelamin 10 siswa berbeda dalam satu kelas. Berikut cara mencari frekuensi setiap nilai huruf:

 #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

Cara menafsirkannya adalah:

  • 3 siswa mendapat nilai “A” di kelasnya.
  • 4 siswa mendapat nilai “B” di kelasnya.
  • 1 siswa menerima nilai “C” di kelas.
  • 2 siswa menerima nilai “D” di kelas.

Kita dapat menggunakan sintaks serupa untuk menemukan jumlah frekuensi untuk kolom lain. Misalnya, berikut cara mencari frekuensi berdasarkan usia:

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

col_0 count
Age	
18 5
19 4
20 1

Cara menafsirkannya adalah:

  • 5 siswa berusia 18 tahun.
  • 4 siswa berusia 19 tahun.
  • 1 siswa berusia 20 tahun.

Anda juga dapat dengan mudah menampilkan frekuensi sebagai proporsi kumpulan data dengan membaginya dengan jumlah:

 #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

Cara menafsirkannya adalah:

  • 50% siswa berusia 18 tahun.
  • 40% siswa berusia 19 tahun.
  • 10% siswa berusia 20 tahun.

Tabel frekuensi dua arah untuk DataFrame

Anda juga dapat membuat tabel frekuensi dua arah untuk menampilkan frekuensi dua variabel berbeda dalam kumpulan data. Misalnya, berikut cara membuat tabel frekuensi dua arah untuk variabel Usia dan Kelas:

 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

Cara menafsirkannya adalah:

  • Ada 3 siswa berusia 18 tahun yang mendapat nilai “A” di kelasnya.
  • Ada 1 siswa berusia 18 tahun dan mendapat nilai “B” di kelasnya.
  • Ada 1 siswa berusia 18 tahun dan mendapat nilai “C” di kelasnya.
  • Ada 0 siswa berusia 18 tahun yang mendapat nilai “D” di kelas.

Dan seterusnya.

Anda dapat menemukan dokumentasi lengkap untuk fungsi crosstab() di sini .

Tambahkan komentar

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *