Unidad 9 / 11

Generación de código: análisis asistido por IA con Python (pandas) y SQL

Ganancias:

  • Capacidad para tomar código SQL y pandas sólido y leerlo y verificarlo línea por línea brindando un esquema y un propósito claros a la inteligencia artificial.
  • Capacidad para detectar errores silenciosos, como el recuento de filas, la función de ajuste y el rendimiento después de fusionar/UNIRSE
  • Capacidad para resolver el problema en depuración sin silenciarlo y evitar ejecutar el código sin probarlo en el entorno de producción.

La ciencia de datos tiene dos lenguajes principales: SQL (lenguaje de consulta estructurado, el lenguaje para consultar datos de bases de datos) y Python (específicamente, la biblioteca pandas, la herramienta estándar para manipular tablas mediante programación). En esta unidad, aprenderemos a utilizar la IA como socio de código: obteniendo código SQL y pandas sólido con las preguntas correctas, leyendo y validando ese código, depurándolo y nunca ejecutándolo a ciegas. La IA escribe código repetitivo en segundos en lugar de minutos; Pero es su trabajo asegurarse de que el código que produce procese la columna correcta con la lógica correcta. Código de trabajo no significa código correcto.

Por qué producir código con IA es poderoso pero arriesgado

La IA proporciona tres grandes beneficios en la generación de código: velocidad (escribe una operación de grupo por pivote de 30 líneas en segundos), recordatorio (le recuerda una función de pandas que olvidó) y enseñanza (explica el código línea por línea). Pero conlleva tres riesgos: error lógico silencioso (el código que suma la columna incorrecta se ejecuta sin errores), función ajustada (sugiere un método que no existe) y trampa de rendimiento (código que funciona con datos pequeños pero falla en 10 millones de filas). Entonces, la regla de oro: lea el código de la IA como si lo hubiera escrito usted mismo. No sigas la línea que no entiendes.

SQL: procesar datos en origen

SQL le permite recuperar datos de la base de datos y procesarlos allí; Puede resumir millones de líneas sin tener que pasarlas a Python. Bloques de construcción básicos: SELECCIONAR (qué columnas), DÓNDE (qué filas), GROUP BY (agrupar y resumir), JOIN (unir tablas), HAVING (filtro posterior al grupo). La IA es muy útil para escribir JOINs y funciones de ventana complejas, pero asegúrese de verificar dos cosas: si JOIN se realiza mediante la clave correcta (la clave incorrecta duplica filas) y si la lógica del filtro es correcta (especialmente el comportamiento NULL y los rangos de fechas).

Precaución: No ejecute una consulta SQL generada por IA directamente en la base de datos de producción. Pruebe primero con una copia pequeña o LIMIT. Nunca ejecute una consulta ACTUALIZAR/ELIMINAR sin validar la condición WHERE; Un WHERE incorrecto puede eliminar toda la tabla.

Python/pandas: análisis flexible

pandas es la forma estándar de manipular tablas (DataFrame) en Python. El uso más eficiente de la IA es darle un esquema y un propósito claros. Operaciones más utilizadas: filtrar, agrupar, fusionar, tabla dinámica, aplicar. La IA los escribe rápidamente; Lo que desea verificar es la lógica: si la agrupación está en la columna correcta, si la combinación cambió el número de filas inesperadamente (siempre verifique el número de filas después de la combinación), si las operaciones en cadena están cambiando el original.

transacción

SQL

pandas

punto de control

Filtrado

DONDE

df[df.x > 5]

Comportamiento NULL/NaN

agrupación

Agrupar por

df.groupby()

¿Es la columna correcta?

fusionar

ÚNETE

df.merge()

Cambio de recuento de filas

Resumen

PROMEDIO(), SUMA()

.media(), .suma()

¿Qué columna se recopiló?

Ordenar por

ORDENAR POR

.sort_values()

Dirección (ascendente/descendente)

deduplicación

DISTINTO

.drop_duplicates()

¿En qué columnas?

Depuración: con IA

Cuando el código falla, la IA es un excelente socio de depuración. Dale el mensaje de error completo y el fragmento de código relevante. Pero cuidado con dos trampas. En primer lugar, la IA puede sugerir una solución que "silencia" el error (por ejemplo, ocultar alertas); esto no soluciona el error, sino que lo oculta. En segundo lugar, la IA a veces cambia silenciosamente otro comportamiento mientras “resuelve” un problema. Regla: comprenda la solución, resuelva, no silencie y verifique que el resultado siga siendo correcto después de la solución.

Quiere código interpretable y mantenible

Cuando compre código de IA, solicite un código que sea legible y mantenible, no solo un código que "funcione". Cuando usted o un colega abran ese código meses después, deberían poder entender lo que hace. Para hacer esto, acostúmbrese a que la IA incluya tres cosas: nombres de variables significativos (orders_temiz, no df2), líneas de comentarios breves en los pasos críticos (que explican por qué, no qué se está haciendo) y una constante con nombre en lugar de un número mágico (ACCEPT_ESIGI = 0,85 en lugar de 0,85 enterrado en el código). Evite también cadenas largas de una sola línea (que conectan cinco acciones en una línea); estos dificultan la depuración. De forma predeterminada, la IA suele producir código conciso e “inteligente”; Si dice claramente "escribir legible, interpretable, mantenible", obtendrá un resultado mucho más mantenible. Esta es también la base de la reproducibilidad (Unidad 10): el código que no se comprende es código que no se puede volver a ejecutar de forma segura.

tres mini casos

Caso 1: ÚNETE a la replicación. Un analista combinó los pedidos con la tabla de productos y descubrió que la facturación total era 3 veces mayor. Causa: cada producto tenía varias filas (diferentes colores) en la tabla de productos; ÚNETE duplicado cada pedido. El código de la IA estaba "funcionando", pero el número de líneas había aumentado de 240.000 a 690.000. Lección: siempre verifique el número de líneas después de fusionar/UNIRSE.

Caso 2: Función de adaptación. Sugirió AI df.groupby('x').summarize() a un pasante; No existe tal método en pandas (existe .agg()). El código no funcionó, el interno estuvo perdido durante 20 minutos. Lección: verifique una función que no reconoce en el documento; La IA puede inventar métodos.

Caso 3: colapso del rendimiento. Un código consultaba la base de datos para cada fila; Funcionó en 5.000 líneas, tardó 9 horas en 4 millones de líneas y se detuvo. Cuando la IA sugirió una solución vectorizada (por lotes), el tiempo se redujo a 40 segundos. Lección: el código que funciona con datos pequeños puede fallar con datos grandes; Considere la eficiencia.

Cuatro plantillas copiables

1) Solicitar SQL con esquema:

Su rol: asistente SQL (PostgreSQL). Tablas: - pedidos (id, cliente_id, fecha y hora, cantidad numérica) - clientes (id, texto de la ciudad) Tarea: Obtenga la facturación total y el número de pedidos por ciudad en 2024, ordenados por facturación en orden descendente. Explica cómo manejas las ciudades NULL. Primero probaré la consulta con LIMIT; ACTUALIZAR/ELIMINAR generación.

2) proceso de pandas con punto de control:

Tengo DataFrames df (pedidos) y df_customers (clientes). Calcular el importe medio por ciudad. IMPORTANTE: imprima el número de filas antes y después de la combinación para poder ver si hay duplicaciones. Explica en qué columna fusionaste y por qué elegiste interior/izquierda.

3) Explicación y verificación del código:

Explique el siguiente código de pandas línea por línea: ¿qué hace cada línea, qué suposiciones hace, en qué casos podría dar resultados incorrectos? Avíseme si utilicé una función de manipulación. Código: [pegar]

4) Depuración:

Este código da este error. Mensaje de error completo: [pegar]. Código: [pegar]. Explique la causa RAÍZ del error y corríjalo. Arréglelo resolviendo realmente el problema, no silenciando la alerta. Indique también si la solución cambió la salida.

Aviso débil / Aviso fuerte

Aviso débil:

Escribe una consulta que me dé ventas por ciudad.

Los nombres de las tablas, las columnas, el tipo de base de datos y el comportamiento NULL no están claros. La IA es común, probablemente producirá una consulta que no se ajuste a su tabla.

Potente mensaje:

Su función: asistente SQL (MySQL 8). Tabla: ventas (id, ciudad varchar, cantidad decimal, fecha fecha). Tarea: Obtener el monto total y promedio, número de pedidos por ciudad para el año 2024; Ordenar decreciente por importe total; Mostrar solo ciudades con más de 100 pedidos (HAVING). NULL excluye ciudad. Explique la consulta; Probaré con LIMIT.

Aquí la base de datos, el esquema, el filtro, la clasificación y la regla NULL son obvios.

Errores comunes

  • Ejecutar el código sin leerlo. El código de trabajo no es el código correcto; El código que manipula la columna incorrecta también se ejecuta sin errores.
  • No verificar el número de filas después de fusionar/UNIRSE. La clave incorrecta duplica filas silenciosamente e infla los totales.
  • No verificar la función de ajuste. La IA puede sugerir métodos que no existen; Confirma en el documento que no lo reconoces.
  • Sin pensar en la eficiencia. aplicar/trabajar en bucle en pequeños fallos de datos en millones de filas; vectorizar.
  • Ejecutar directamente en la base de datos de producción. Especialmente ejecutar ACTUALIZAR/BORRAR sin WHERE o realizar pruebas es desastroso.
Consejo: adquiera el hábito de agregar una "línea de validación" a cada fragmento de código que reciba de la IA: una cantidad de líneas de pre y posprocesamiento, algunas líneas de muestra y un total crítico a mano. Estas tres comprobaciones detectan la mayoría de los errores lógicos silenciosos.

En resumen

La IA es un socio poderoso que produce rápidamente código SQL y pandas, pero no es una autoridad ciega. Dale claramente el esquema y el propósito; Lea el código que produce como si lo hubiera escrito usted mismo; Verifique el número de filas, las funciones de ajuste y el rendimiento después de fusionar/UNIRSE; No lo ejecute sin probarlo en la base de datos de producción. Al depurar, intente resolver el problema, no silenciarlo. El código que funciona no es el código correcto; Sólo usted puede garantizar la precisión.

Tarea de aplicación

Elija una pregunta de análisis (por ejemplo, "facturación mensual por canal") y solicite el código de la IA tanto con SQL como con pandas. Lea ambos códigos línea por línea, verifique el número de líneas después de fusionar/UNIRSE y verifique manualmente al menos una suma crítica. Compare si los dos códigos producen el mismo resultado; Si es diferente, averigüe por qué.

lista de verificación

  • [] ¿Le he dado claramente la tabla/esquema y el propósito a la IA?
  • [] ¿Leí y entendí el código que produjo línea por línea?
  • [] ¿Verifiqué el número de líneas después de fusionar/UNIRSE?
  • [] ¿He verificado las funciones que no reconozco en la documentación?
  • [] ¿He probado el código primero en datos pequeños o seguros y no en el entorno de producción?