Hoe u frequentietabellen maakt in python
Een frequentietabel is een tabel die de frequenties van verschillende categorieën weergeeft. Dit type tabel is vooral handig om de verdeling van waarden in een dataset te begrijpen.
In deze tutorial wordt uitgelegd hoe u frequentietabellen maakt in Python.
Eenrichtingsfrequentietabel voor een serie
Om de frequenties van individuele waarden in een pandareeks te vinden, kun je de functie value_counts() gebruiken:
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
U kunt het argument sort=False toevoegen als u niet wilt dat de gegevenswaarden op frequentie worden gesorteerd:
data.value_counts(sort= False )
1 3
2 1
3 4
4 2
5 1
De manier om het resultaat te interpreteren is als volgt:
- De waarde “1” verschijnt 3 keer in de reeks.
- De waarde “2” verschijnt 1 keer in de reeks.
- De waarde “3” verschijnt 4 keer in de reeks.
Enzovoort.
Eenrichtingsfrequentietabel voor een DataFrame
Om de frequenties van een panda’s DataFrame te vinden, kunt u de functie kruistabel () gebruiken, die de volgende syntaxis gebruikt:
kruistabel (indexen, kolommen)
Goud:
- index: naam van de kolom waarop gegroepeerd moet worden
- kolommen: naam die aan de frequentiekolom moet worden gegeven
Laten we bijvoorbeeld zeggen dat we een DataFrame hebben met informatie over het leerjaar, de leeftijd en het geslacht van tien verschillende leerlingen in een klas. Zo kunt u de frequentie van elk lettercijfer vinden:
#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
De manier om dit te interpreteren is:
- 3 leerlingen behaalden een “A” in de klas.
- 4 leerlingen behaalden een “B” in de klas.
- 1 leerling kreeg een “C” in de klas.
- 2 leerlingen kregen een “D” in de klas.
We kunnen een vergelijkbare syntaxis gebruiken om frequentietellingen voor andere kolommen te vinden. Zo kunt u bijvoorbeeld de frequentie op basis van leeftijd vinden:
pd.crosstab(index=df[' Age '], columns=' count ') col_0 count Age 18 5 19 4 20 1
De manier om dit te interpreteren is:
- 5 studenten zijn 18 jaar oud.
- 4 studenten zijn 19 jaar oud.
- 1 leerling is 20 jaar oud.
U kunt frequenties ook eenvoudig weergeven als verhoudingen van de dataset door te delen door de som:
#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
De manier om dit te interpreteren is:
- 50% van de studenten is 18 jaar oud.
- 40% van de studenten is 19 jaar oud.
- 10% van de studenten is 20 jaar oud.
Bidirectionele frequentietabellen voor een DataFrame
U kunt ook een tweerichtingsfrequentietabel maken om de frequenties van twee verschillende variabelen in de dataset weer te geven. Zo kunt u bijvoorbeeld als volgt een tweerichtingsfrequentietabel maken voor de variabelen Leeftijd en Graad:
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
De manier om dit te interpreteren is:
- Er zijn 3 leerlingen van 18 jaar die een „A“ hebben gekregen in de klas.
- Er is 1 leerling die 18 jaar oud is en een “B” heeft gekregen in de klas.
- Er is 1 leerling die 18 jaar oud is en een “C” heeft gekregen in de klas.
- Er zijn 0 leerlingen van 18 jaar die een “D” hebben gekregen in de klas.
Enzovoort.
U kunt de volledige documentatie voor de functie kruistabel() hier vinden.