Categorieën bijwerken

Werken met categorische data in Python

Kasey Jones

Research Data Scientist

De variabele breed

Aantallen per ras:

dogs["breed"] = dogs["breed"].astype("category")
dogs["breed"].value_counts()
Unknown Mix                 1524
German Shepherd Dog Mix     190
Dachshund Mix               147
Labrador Retriever Mix      83
Staffordshire Terrier Mix   62
...
Werken met categorische data in Python

Categorieën hernoemen

De methode rename_categories:

Series.cat.rename_categories(new_categories=dict)

Maak een dictionary:

my_changes = {"Unknown Mix": "Unknown"}

Hernoem de categorie:

dogs["breed"] = dogs["breed"].cat.rename_categories(my_changes)
Werken met categorische data in Python

De bijgewerkte variabele breed

Aantallen per ras:

dogs["breed"].value_counts()
Unknown                     1524
German Shepherd Dog Mix     190
Dachshund Mix               147
Labrador Retriever Mix      83
Staffordshire Terrier Mix   62
...

Meerdere wijzigingen tegelijk:

my_changes = {
  old_name1: new_name1,
  old_name2: new_name2,
  ...
}
Series.cat.rename_categories(
  my_changes
)
Werken met categorische data in Python

Categorieën hernoemen met een functie

Meerdere categorieën updaten:

dogs['sex'] = dogs['sex'].cat.rename_categories(lambda c: c.title())

dogs['sex'].cat.categories
Index(['Female', 'Male'], dtype='object')
Werken met categorische data in Python

Veelvoorkomende vervangingsproblemen

  • Moet nieuwe categorienamen gebruiken
# Werkt niet! "Unknown" bestaat al
use_new_categories = {"Unknown Mix": "Unknown"}
  • Je kunt niet twee categorieën samenvoegen tot één
# Werkt niet! Nieuwe namen moeten uniek zijn
cannot_repeat_categories = {
    "Unknown Mix": "Unknown",
    "Mixed Breed": "Unknown"
}
Werken met categorische data in Python

Categorieën samenvoegen: setup

De kleur van een hond:

dogs["color"] = dogs["color"].astype("category")
print(dogs["color"].cat.categories)
Index(['apricot', 'black', 'black and brown', 'black and tan',
       'black and white', 'brown', 'brown and white', 'dotted', 'golden',
       'gray', 'gray and black', 'gray and white', 'red', 'red and white',
       'sable', 'saddle back', 'spotty', 'striped', 'tricolor', 'white',
       'wild boar', 'yellow', 'yellow-brown'],
      dtype='object')
...
Werken met categorische data in Python

Categorieën samenvoegen: voorbeeld

Maak een dictionary en gebruik .replace:

update_colors = {
    "black and brown": "black",
    "black and tan": "black",
    "black and white": "black",
}
dogs["main_color"] = dogs["color"].replace(update_colors)

Check het dtype van de Series:

dogs["main_color"].dtype
dtype('O')
Werken met categorische data in Python

Terugzetten naar categorisch

dogs["main_color"] = dogs["main_color"].astype("category")
dogs["main_color"].cat.categories
Index(['apricot', 'black', 'brown', 'brown and white', 'dotted', 'golden',
       'gray', 'gray and black', 'gray and white', 'red', 'red and white',
       'sable', 'saddle back', 'spotty', 'striped', 'tricolor', 'white',
       'wild boar', 'yellow', 'yellow-brown'],
      dtype='object')
Werken met categorische data in Python

Tijd om te oefenen

Werken met categorische data in Python

Preparing Video For Download...