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 .