Tipos de datos en ciencia de datos

Clase 7 de 38Curso de Ingeniería de Datos con Python

Contenido del curso

Web scraping

Pandas

Resumen

Entender los tipos de datos con precisión es clave para analizar, limpiar y modelar información con confianza. Aquí verás cómo clasificar datos más allá del lenguaje de programación: desde primitivos en Python hasta estructurados, semiestructurados y no estructurados, con ejemplos prácticos en Jupyter Notebook. Esta guía te ayuda a decidir qué técnicas aplicar según la naturaleza del dato y a usar herramientas como type() y dir() de forma efectiva.

¿Qué son los tipos de datos y por qué importan en ciencia de datos?

La clasificación de datos determina cómo accedemos, transformamos y analizamos información. No se trata solo de lo que el lenguaje soporta, sino de cómo nos acercamos al problema. En proyectos reales, identificar si un dato es estructurado, semiestructurado o no estructurado guía el flujo de trabajo, las herramientas y el esfuerzo de ingeniería. Además, hay distinciones útiles como cualitativos vs. cuantitativos y tiempo real vs. históricos, que más adelante impactan el análisis matemático.

  • Un tipo de dato define qué métodos y operaciones son válidas para ese objeto.
  • Con type() identificas el tipo en Python rápidamente.
  • Con dir() exploras métodos y atributos disponibles.
  • La estructura del dato condiciona la facilidad de acceso y limpieza.
  • En datos del mundo real, lo no estructurado es mayoría: requiere más procesamiento.

¿Cuáles son los tipos de datos primitivos y cómo identificarlos en Python?

En Python, los primitivos más comunes incluyen enteros, flotantes, booleanos y cadenas de texto (strings). También aparecen hexadecimales y octales cuando trabajas con datos binarios, además de fechas con datetime y objetos complejos definidos con classes.

¿Cómo declararlos y verificarlos?

# enteros, flotantes, booleanos, strings n_entero = 42 n_flotante = 3.14159 es_valido = True nombre = "David" # hexadecimal y octal n_hex = 0xFF # 255 en decimal n_octal = 0o23 # 19 en decimal # inspección de tipos y métodos print(type(n_entero)) print(dir(nombre))

¿Cómo trabajar con fechas con datetime?

from datetime import datetime hoy = datetime.now() print(hoy)

¿Cómo crear objetos complejos con clases?

class Auto: pass mi_auto = Auto() print(type(mi_auto))
  • Prefijos: 0x para hexadecimal y 0o para octal.
  • True y False son booleanos válidos.
  • Los strings van entre comillas simples o dobles.
  • type() y dir() agilizan el reconocimiento y exploración de objetos.

¿Cómo se clasifican los datos: estructurados, semiestructurados y no estructurados?

Los estructurados son tablas con filas y columnas bien definidas: ejemplos típicos son bases de datos MySQL, donde acceder es tan directo como ejecutar SELECT. Los semiestructurados tienen organización, pero no un esquema fijo: las APIs varían entre proveedores, como Twitter vs. Google Maps. Los no estructurados incluyen HTML, texto libre, currículums, imágenes, audio y video: su naturaleza dificulta extraer información directamente, aunque pueden tener patrones implícitos.

En Jupyter Notebook, el flujo mostrado incluye insertar celdas con la tecla B, cambiar a Markdown con M y ejecutar con Ctrl+Enter. Para visualizar ejemplos, se usa IPython.display y la clase Image para cargar diagramas, y una celda Markdown para pegar texto libre (como el famoso “send” de Python), ilustrando la falta de una estructura formal computable.

¿Qué ejemplos prácticos se mostraron?

# mostrar imágenes de ejemplos (estructura de tabla y marcado HTML) from IPython.display import Image, display display(Image('MySQL_Table_example.png')) display(Image('HTML_Markup_Example.png'))
  • Estructurados: acceso rápido, tipos definidos, manipulación sencilla. Sueño de un data engineer.
  • Semiestructurados: requieren parseo y adaptadores por proveedor de API.
  • No estructurados: demandan técnicas de extracción y modelado más complejas.
  • Atajos en Jupyter Notebook: B para nueva celda abajo, M para Markdown, Ctrl+Enter para ejecutar.

¿Te gustaría que añadamos más ejemplos de datos en tiempo real, históricos o nuevos tipos que te encuentras en tu trabajo? Comparte tus dudas y casos en los comentarios.