Jak tworzyć tabele częstości w pythonie


Tabela częstości to tabela, która wyświetla częstotliwości różnych kategorii. Ten typ tabeli jest szczególnie przydatny do zrozumienia rozkładu wartości w zbiorze danych.

W tym samouczku wyjaśniono, jak tworzyć tabele częstości w języku Python.

Jednokierunkowa tablica częstości dla serii

Aby znaleźć częstotliwości poszczególnych wartości w serii pand, możesz skorzystać z funkcji 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

Możesz dodać argument sort=False, jeśli nie chcesz, aby wartości danych były sortowane według częstotliwości:

 data.value_counts(sort= False )

1 3
2 1
3 4
4 2
5 1

Sposób interpretacji wyniku jest następujący:

  • Wartość „1” pojawia się 3 razy w serii.
  • Wartość „2” pojawia się 1 raz w serii.
  • Wartość „3” pojawia się 4 razy w serii.

I tak dalej.

Jednokierunkowa tabela częstotliwości dla ramki DataFrame

Aby znaleźć częstotliwości pandy DataFrame, możesz użyć funkcji crosstab () , która wykorzystuje następującą składnię:

tabela przestawna (indeksy, kolumny)

Złoto:

  • indeks: nazwa kolumny, według której chcesz grupować
  • kolumny: nazwa nadana kolumnie częstotliwości

Załóżmy na przykład, że mamy ramkę danych zawierającą informacje o klasie, wieku i płci 10 różnych uczniów w klasie. Oto jak znaleźć częstotliwość każdej oceny literowej:

 #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

Sposób interpretacji tego jest następujący:

  • 3 uczniów otrzymało ocenę „A” w klasie.
  • 4 uczniów otrzymało w klasie ocenę „B”.
  • 1 uczeń otrzymał ocenę „C” w klasie.
  • Dwóch uczniów otrzymało ocenę „D” w klasie.

Możemy użyć podobnej składni, aby znaleźć liczniki częstotliwości dla innych kolumn. Oto jak na przykład znaleźć częstotliwość według wieku:

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

col_0 count
Age	
18 5
19 4
20 1

Sposób interpretacji tego jest następujący:

  • 5 uczniów ma 18 lat.
  • 4 uczniów ma 19 lat.
  • 1 uczeń ma 20 lat.

Możesz także łatwo wyświetlić częstotliwości jako proporcje zbioru danych, dzieląc przez sumę:

 #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

Sposób interpretacji tego jest następujący:

  • 50% uczniów ma 18 lat.
  • 40% uczniów ma 19 lat.
  • 10% studentów ma 20 lat.

Dwukierunkowe tabele częstotliwości dla ramki DataFrame

Można także utworzyć dwukierunkową tabelę częstości, aby wyświetlić częstości dwóch różnych zmiennych w zestawie danych. Na przykład, oto jak utworzyć dwuczynnikową tabelę częstości dla zmiennych Wiek i Stopień:

 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

Sposób interpretacji tego jest następujący:

  • W klasie jest 3 uczniów w wieku 18 lat, którzy otrzymali ocenę „A”.
  • W klasie jest 1 uczeń, który ma 18 lat i otrzymał ocenę „B”.
  • W klasie jest 1 uczeń, który ma 18 lat i otrzymał ocenę „C”.
  • W klasie jest 0 uczniów w wieku 18 lat, którzy otrzymali ocenę „D”.

I tak dalej.

Pełną dokumentację funkcji crosstab() można znaleźć tutaj .

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *