Skip to content

Commit

Permalink
Merge pull request #14 from alfhedo/cambio-categories
Browse files Browse the repository at this point in the history
Cambiar forma de establecer categoria
  • Loading branch information
mariosky authored Sep 19, 2024
2 parents efdece3 + 4926b67 commit 098f562
Showing 1 changed file with 9 additions and 3 deletions.
12 changes: 9 additions & 3 deletions txt/03.pandas.md
Original file line number Diff line number Diff line change
Expand Up @@ -237,13 +237,15 @@ dtype: object
```
Ahora si, cada una de las columnas corresponde al tipo de dato de los atributos de la tabla anterior. Si queremos también podemos indicar al momento de la lectura el nombre y tipo de dato de los atributos. Incluso podemos indicar si tenemos algún dato categórico.

Mantener origin como entero

``` python
>>> df2 = pd.read_csv('datos-ejemplo/auto-mpg.data', sep='\s+',
header=None, na_values='?', names=['mpg','cylinders','displacement','horsepower',
'weight','acceleration','model_year','origin','car_name'],
dtype={'mpg':'f4','cylinders':'i4','displacement':'f4',
'horsepower':'f4','weight':'f4','acceleration':'f4',
'model_year':'i4','origin':'category','car_name':'category'})
'model_year':'i4','origin':'i4','car_name':'category'})

>>> df2.dtypes

Expand All @@ -254,7 +256,7 @@ horsepower float32
weight float32
acceleration float32
model_year int32
origin category
origin int32
car_name category
dtype: object
```
Expand Down Expand Up @@ -285,10 +287,14 @@ max 24.799999 82.000000
```

Ya que hablamos de los datos categóricos, vamos especificando el nombre de cada categoría. En el archivo solo se especifican los valores 1, 2 y 3. Al ver los modelos de los autos, inferimos que deben ser "USA", "Japan" y "Germany".
Mapea la columna 'origin' con los valores correspondientes, asegurarte de que la columna 'origin' sea tipo 'category' y establecer las categorías.

``` python
>>> df2["origin"].cat.categories = ["USA", "Japan", "Germany"]
>>> origin_map = {1: 'USA', 2: 'Japan', 3: 'Germany'}
>>> df2['origin'] = df2['origin'].map(origin_map)
>>> df2['origin'] = df2['origin'].astype('category')

>>> df2['origin'] = df2['origin'].cat.set_categories(["USA", "Japan", "Germany"])
>>> df2['origin']

0 USA
Expand Down

0 comments on commit 098f562

Please sign in to comment.