Actualizarea categoriilor

Lucrul cu date categoriale în Python

Kasey Jones

Research Data Scientist

Variabila rasă

Numărul de apariții pe 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
...
Lucrul cu date categoriale în Python

Redenumirea categoriilor

Metoda rename_categories:

Series.cat.rename_categories(new_categories=dict)

Creați un dicționar:

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

Redenumiți categoria:

dogs["breed"] = dogs["breed"].cat.rename_categories(my_changes)
Lucrul cu date categoriale în Python

Variabila rasă actualizată

Numărul de apariții pe rasă:

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

Mai multe modificări simultan:

my_changes = {
  old_name1: new_name1,
  old_name2: new_name2,
  ...
}
Series.cat.rename_categories(
  my_changes
)
Lucrul cu date categoriale în Python

Redenumirea categoriilor cu o funcție

Actualizați mai multe categorii:

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

dogs['sex'].cat.categories
Index(['Female', 'Male'], dtype='object')
Lucrul cu date categoriale în Python

Probleme frecvente la redenumire

  • Trebuie folosite nume noi de categorii
# Does not work! "Unknown" already exists
use_new_categories = {"Unknown Mix": "Unknown"}
  • Nu se pot combina două categorii într-una
# Does not work! New names must be unique
cannot_repeat_categories = {
    "Unknown Mix": "Unknown",
    "Mixed Breed": "Unknown"
}
Lucrul cu date categoriale în Python

Configurare pentru gruparea categoriilor

Culoarea câinilor:

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')
...
Lucrul cu date categoriale în Python

Exemplu de grupare a categoriilor

Creați un dicționar și folosiți .replace:

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

Verificați tipul de date al seriei:

dogs["main_color"].dtype
dtype('O')
Lucrul cu date categoriale în Python

Reconvertire la tip categoric

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')
Lucrul cu date categoriale în Python

Timp de practică

Lucrul cu date categoriale în Python

Preparing Video For Download...