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.

Einen Kommentar hinzufügen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert