Restricciones del tipo de datos

Limpieza de datos en Python

Adel Nehme

VP of AI Curriculum, DataCamp

Esquema del curso

dirty_data

Limpieza de datos en Python

Esquema del curso

efectos secundarios

Limpieza de datos en Python

Esquema del curso

clean_data

Limpieza de datos en Python

Esquema del curso

clean_data

Capítulo 1: Problemas comunes con los datos

Limpieza de datos en Python

¿Por qué es necesario limpiar los datos?

ds_workflow

Limpieza de datos en Python

¿Por qué es necesario limpiar los datos?

ds_workflow

Limpieza de datos en Python

¿Por qué es necesario limpiar los datos?

Si entra basura, sale basura

Limpieza de datos en Python

Restricciones del tipo de datos

Tipo de datos Ejemplo
Datos de texto Nombre, apellidos, dirección...
Enteros Número de suscriptores, número de productos vendidos...
Decimales Temperatura, tipos de cambio del dólar...
Binario ¿Estás casado, eres cliente nuevo, sí/no, ...?
Fechas Fechas de pedido, fechas de envío...
categorías. Estado civil, género...
Tipos de datos en Python
str
int
float
bool
datetime
category
Limpieza de datos en Python

Cadenas a números enteros

# Import CSV file and output header
sales = pd.read_csv('sales.csv')
sales.head(2)
   SalesOrderID    Revenue    Quantity
0         43659     23153$          12
1         43660      1457$           2
# Get data types of columns
sales.dtypes
SalesOrderID    int64
Revenue         object
Quantity        int64
dtype: object
Limpieza de datos en Python

De cadena a entero

# Get DataFrame information
sales.info()
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 31465 entries, 0 to 31464
Data columns (total 3 columns):
SalesOrderID     31465 non-null int64
Revenue          31465 non-null object
Quantity         31465 non-null int64
dtypes: int64(2), object(1)
memory usage: 737.5+ KB
Limpieza de datos en Python

De cadena a entero

# Print sum of all Revenue column
sales['Revenue'].sum()
'23153$1457$36865$32474$472$27510$16158$5694$6876$40487$807$6893$9153$6895$4216..
# Remove $ from Revenue column
sales['Revenue'] = sales['Revenue'].str.strip('$')
sales['Revenue'] = sales['Revenue'].astype('int')
# Verify that Revenue is now an integer
assert sales['Revenue'].dtype == 'int'
Limpieza de datos en Python

La instrucción assert

# This will pass
assert 1+1 == 2
# This will not pass
assert 1+1 == 3
AssertionError                            Traceback (most recent call last)
         assert 1+1 == 3
AssertionError:
Limpieza de datos en Python

¿Numérico o categórico?

...   marriage_status    ...
...                 3    ...
...                 1    ...
...                 2    ...

0 = Nunca se casó       1 = Casado       2 = Separado       3 = Divorciado

df['marriage_status'].describe()
       marriage_status
...
mean              1.4
std               0.20
min               0.00
50%               1.8 ...
Limpieza de datos en Python

¿Numérico o categórico?

# Convert to categorical
df["marriage_status"] = df["marriage_status"].astype('category')

df.describe()
        marriage_status
count                 241
unique                4
top                   1
freq                  120
Limpieza de datos en Python

¡Vamos a practicar!

Limpieza de datos en Python

Preparing Video For Download...