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 .