Het Pandas datatype ‘category’ komt overeen met de statistische meetniveaus nominaal en ordinaal. Voorbeelden van nominale meetniveau ’s zijn geslacht en genre. Leeftijdscategorie en review rating zijn voorbeelden van ordinaal meetniveau. Variabelen hebben een beperkte en vaststaande set van waardes. Ordinale variabelen hebben daarnaast een logische sortering. Deze sortering kan je optioneel vastleggen met het datatype ‘category’ in Pandas .
Dit datatype is een hybride datatype. Het ziet eruit en gedraagt zich als tekst (‘string’) en wordt intern opgeslagen als integers, waardoor je logische sorteringen kan vastleggen en de code efficiënter omgaat met systeemgeheugen.
Nieuwe categorieën moeten worden toegevoegd voordat de dataset wordt uitgebreid met nieuwe data. Doe je dit niet, dan worden de ontbrekende categorieën door Pandas vertaald naar np.nan (ontbrekende waarden).
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | # Formaat converteren naar category df[ 'Pclass' ] = df[ 'Pclass' ].astype( 'category' ) # Lijst met categorieen df[ 'Pclass' ].cat.categories.tolist() # Aantal caregorieen tellen len (df[ 'Pclass' ].cat.categories.tolist()) # Nieuwe categorieen toevoegen df[ 'Pclass' ].cat.add_categories([ 'a' , 'b' ], inplace = True ) # Categorie verwijderen # Let op! Als de wordt gebruikt dan is het resultaat een ontbrekende waarde. # De records zelf worden niet verwijderd. df[ 'Pclass' ].cat.remove_categories([ 'a' , 'b' ], inplace = True ) # Niet gebruikte categorieen verwijderen df[ 'Pclass' ].cat.remove_unused_categories(inplace = True ) # Hernoemen df[ 'Pclass' ].cat.rename_categories([ 'Klasse 1' , 'Klasse 2' , "Klasse 3" ], inplace = True ) # Andere sortering opgeven df[ 'Pclass' ].cat.reorder_categories([ 'Klasse 3' , 'Klasse 2' , "Klasse 1" ], ordered = True , inplace = True ) # Sorteren c_lijst = df[ 'Pclass' ].cat.categories.tolist() c_lijst.sort() df[ 'Pclass' ].cat.reorder_categories(c_lijst, ordered = True , inplace = True ) |