Data Science

Dominando la Conversión de Tipos de Datos en Pandas

Spread the love

Pandas es una poderosa biblioteca de Python para la manipulación y el análisis de datos. La gestión del tipo de datos es crucial para un procesamiento de datos eficiente. Este artículo explora varios métodos para cambiar eficazmente los tipos de datos de las columnas en sus DataFrames de Pandas.

Tabla de Contenidos

1. Conversión a Tipos Numéricos con pd.to_numeric()

La función pd.to_numeric() es ideal para convertir columnas a tipos de datos numéricos (int, float). Es particularmente útil cuando se trabaja con columnas que contienen representaciones de cadenas de números, que a menudo se encuentran al importar datos.


import pandas as pd

data = {'col1': ['1', '2', '3', '4', '5'], 'col2': ['A', 'B', 'C', 'D', 'E']}
df = pd.DataFrame(data)

df['col1'] = pd.to_numeric(df['col1'])
print(df.dtypes)

El parámetro errors gestiona cómo se manejan los errores:

  • 'coerce': Los valores inválidos se convierten en NaN.
  • 'raise': Lanza una excepción para los valores inválidos.
  • 'ignore': Ignora los valores inválidos.

data = {'col1': ['1', '2', 'a', '4', '5']}
df = pd.DataFrame(data)
df['col1'] = pd.to_numeric(df['col1'], errors='coerce')
print(df)

2. Conversión de Tipo Flexible con astype()

El método astype() proporciona un enfoque general para cambiar los tipos de datos. Puede convertir a prácticamente cualquier tipo compatible (int, float, str, bool, datetime, etc.).


data = {'col1': [1, 2, 3, 4, 5], 'col2': [True, False, True, False, True]}
df = pd.DataFrame(data)

df['col1'] = df['col1'].astype(str)
df['col2'] = df['col2'].astype(int)
print(df.dtypes)

Precaución: La conversión de tipo puede provocar pérdida de datos (por ejemplo, truncamiento de decimales al convertir float a int).

3. Inferencia Inteligente de Tipo con infer_objects()

El método infer_objects() es útil para DataFrames con tipos de datos mixtos en columnas «object». Intenta inferir el tipo más apropiado para cada columna.


data = {'col1': ['1', 2, '3.14', 4], 'col2': ['A', 'B', 'C', 'D']}
df = pd.DataFrame(data)
df = df.infer_objects()
print(df.dtypes)

Nota: Los datos inconsistentes pueden impedir una inferencia de tipo exitosa.

4. Mejores Prácticas para la Conversión de Tipos de Datos

Siempre inspeccione sus datos antes y después de la conversión para verificar los cambios y evitar resultados inesperados. Considere usar el método .info() para verificar los tipos de datos y los valores faltantes. Maneje los posibles errores con elegancia usando el parámetro errors en pd.to_numeric() o preprocesando sus datos para eliminar o reemplazar valores problemáticos.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *