Limpieza y acceso a datos

Trabajar con datos categóricos en Python

Kasey Jones

Research Data Scientist

Posibles problemas con datos categóricos

1) Valores incoherentes: "Ham", "ham", " Ham"

2) Valores mal escritos: "Ham", "Hma"

3) dtype incorrecto: df['Our Column'].dtype

dtype('O')
Trabajar con datos categóricos en Python

Identificar problemas

Usa cualquiera de estas:

  • Series.cat.categories
  • Series.value_counts()
dogs["get_along_cats"].value_counts()
No     2503
yes     275
no      156
Noo       2
 NO       1
Trabajar con datos categóricos en Python

Corregir: espacios en blanco

Quitar espacios: .strip()

dogs["get_along_cats"] = dogs["get_along_cats"].str.strip()

Revisar recuentos:

dogs["get_along_cats"].value_counts()
No     2503
yes     275
no      156
Noo       2
NO        1   # < ---- sin más espacios
Trabajar con datos categóricos en Python

Corregir: capitalización

Mayúsculas/minúsculas: .title(), .upper(), .lower()

dogs["get_along_cats"] = dogs["get_along_cats"].str.title()

Revisar recuentos:

dogs["get_along_cats"].value_counts()
No     2660 
Yes     275
Noo       2
Trabajar con datos categóricos en Python

Corregir: palabras mal escritas

Corregir un typo con .replace()

replace_map = {"Noo": "No"}
dogs["get_along_cats"].replace(replace_map, inplace=True)

Revisar recuentos:

dogs["get_along_cats"].value_counts()
No     2662
Yes     275
Trabajar con datos categóricos en Python

Comprobar el tipo de datos

Comprobar el dtype

dogs["get_along_cats"].dtype
dtype('O')

Convertir de nuevo a categoría

dogs["get_along_cats"] = dogs["get_along_cats"].astype("category")
Trabajar con datos categóricos en Python

Usar el objeto accesor str

Buscar una cadena

dogs["breed"].str.contains("Shepherd", regex=False)
0        False
1        False
2        False
...
2935     False
2936     True
Trabajar con datos categóricos en Python

Acceder a datos con loc

Acceder a valores de Series por categoría

dogs.loc[dogs["get_along_cats"] == "Yes", "size"]

Recuento de valores de la Series:

dogs.loc[dogs["get_along_cats"] == "Yes", "size"].value_counts(sort=False)
small      69
medium    169
large      37
Trabajar con datos categóricos en Python

Práctica: limpiar y acceder

Trabajar con datos categóricos en Python

Preparing Video For Download...