Guadagni:
- Capacità di prendere codice SQL e Panda robusto e di leggerlo e verificarlo riga per riga fornendo uno schema e uno scopo chiari all'intelligenza artificiale
- Capacità di rilevare errori silenziosi come conteggio delle righe, funzione di adattamento e velocità effettiva dopo l'unione/JOIN
- Possibilità di risolvere il problema in debug senza silenziarlo ed evitare di eseguire il codice senza testarlo nell'ambiente di produzione
La scienza dei dati ha due linguaggi principali: SQL (Structured Query Language, il linguaggio per interrogare i dati dai database) e Python (in particolare, la libreria pandas, lo strumento standard per manipolare le tabelle a livello di codice). In questa unità impareremo a utilizzare l'intelligenza artificiale come partner del codice: ottenendo da essa un solido codice SQL e Panda con le domande giuste, leggendo e convalidando quel codice, eseguendone il debug e non eseguirlo mai alla cieca. L’intelligenza artificiale scrive codice ripetitivo in pochi secondi invece che in minuti; Ma è tuo compito assicurarti che il codice prodotto elabori la colonna corretta con la logica corretta. Il codice funzionante non significa il codice corretto.
Perché produrre codice con l'intelligenza artificiale è potente ma rischioso
L'intelligenza artificiale offre tre grandi vantaggi nella generazione del codice: velocità (scrive un'operazione di raggruppamento per pivot di 30 righe in pochi secondi), promemoria (ti ricorda una funzione del panda che hai dimenticato) e insegnamento (spiega il codice riga per riga). Ma comporta tre rischi: errore logico silenzioso (il codice che somma la colonna sbagliata viene eseguito senza errori), funzione adattata (suggerisce un metodo che non esiste) e trappola del rendimento (codice che funziona su dati di piccole dimensioni ma si blocca a 10 milioni di righe). Quindi la regola d'oro: leggi il codice dell'IA come se lo avessi scritto tu stesso. Non seguire la linea che non capisci.
SQL: elabora i dati alla fonte
SQL consente di recuperare i dati dal database e di elaborarli lì; Puoi riassumere milioni di righe senza inserirle in Python. Elementi costitutivi di base: SELECT (quali colonne), WHERE (quali righe), GROUP BY (raggruppa e riepiloga), JOIN (unisci tabelle), HAVING (filtro post-raggruppamento). L'intelligenza artificiale è molto utile per scrivere JOIN complessi e funzioni finestra, ma assicurati di controllare due cose: il JOIN avviene tramite la chiave corretta (la chiave sbagliata duplica le righe) e la logica del filtro è corretta (in particolare il comportamento NULL e gli intervalli di date).
Attenzione: non eseguire una query SQL generata dall'intelligenza artificiale direttamente sul database di produzione. Prova prima con una piccola copia o LIMIT. Non eseguire mai una query UPDATE/DELETE senza convalidare la condizione WHERE; Un WHERE sbagliato può cancellare l'intera tabella.
Python/panda: analisi flessibile
pandas è il modo standard per manipolare le tabelle (DataFrame) in Python. L’uso più efficiente dell’IA è darle uno schema e uno scopo chiari. Operazioni più comunemente utilizzate: filtro, raggruppamento, unione, tabella_pivot, applicazione. L'intelligenza artificiale li scrive rapidamente; Ciò che vuoi verificare è la logica: il raggruppamento nella colonna corretta, l'unione ha modificato il numero di righe in modo imprevisto (controlla sempre il numero di righe dopo l'unione), le operazioni a catena stanno modificando l'originale.
transazione
SQL
panda
punto di controllo
Filtraggio
DOVE
df[df.x > 5]
Comportamento NULL/NaN
raggruppamento
GRUPPO PER
df.groupby()
È la colonna giusta?
unire
ISCRIVITI
df.merge()
Modifica del conteggio delle righe
Sommario
AVG(), SOMMA()
.media(), .somma()
Quale colonna è stata raccolta
Ordina per
ORDINA PER
.sort_values()
Direzione (ascendente/discendente)
deduplicazione
DISTINTO
.drop_duplicates()
In quali colonne?
Debug: con AI
Quando il codice fallisce, l'intelligenza artificiale è un eccellente partner di debug. Forniscigli il messaggio di errore completo e il relativo snippet di codice. Ma attenzione a due trappole. Innanzitutto, l’intelligenza artificiale può suggerire una soluzione che “silenzia” l’errore (ad esempio, nascondendo gli avvisi): questo non risolve l’errore, lo nasconde. In secondo luogo, l’intelligenza artificiale a volte modifica silenziosamente un altro comportamento mentre “risolve” un problema. Regola: comprendere la correzione, risolvere senza disattivare l'audio e verificare che l'output sia ancora corretto dopo la correzione.
Vuoi codice interpretabile e manutenibile
Quando acquisti codice dall'intelligenza artificiale, chiedi codice che sia leggibile e gestibile, non solo codice che "funzioni". Quando tu o un collega aprite quel codice mesi dopo, dovrebbe essere in grado di capire cosa fa. Per fare ciò, prendi l'abitudine di fare in modo che l'intelligenza artificiale includa tre cose: nomi di variabili significativi (orders_temiz, non df2), brevi righe di commento nei passaggi critici (che spiegano perché, non cosa viene fatto) e una costante con nome invece di un numero magico (ACCEPT_ESIGI = 0,85 invece di 0,85 sepolto nel codice). Evitare inoltre lunghe catene a linea singola (che collegano cinque azioni in una linea); questi rendono difficile il debug. Per impostazione predefinita, l’intelligenza artificiale spesso produce codice conciso e “intelligente”; Se dici chiaramente "scrivi leggibile, interpretabile, manutenibile", otterrai un output molto più gestibile. Questa è anche la base della riproducibilità (Unità 10): il codice che non viene compreso è un codice che non può essere rieseguito in modo sicuro.
tre mini custodie
Caso 1: replica JOIN. Un analista ha combinato gli ordini con la tabella dei prodotti e ha riscontrato che il fatturato totale è 3 volte superiore. Causa: ogni prodotto aveva più righe (colori diversi) nella tabella prodotti; ISCRIVITI duplicato ogni ordine. Il codice dell'IA "funzionava", ma il numero di linee era balzato da 240mila a 690mila. Lezione: controlla sempre il numero di righe dopo l'unione/JOIN.
Caso 2 — Funzione di adattamento. Ha suggerito AI df.groupby('x').summarize() a uno stagista; Non esiste un metodo simile nei panda (esiste .agg()). Il codice non ha funzionato, lo stagista è rimasto disperso per 20 minuti. Lezione: verifica una funzione che non riconosci dal documento; L’intelligenza artificiale può inventare metodi.
Caso 3 – Crollo dei rendimenti. Un codice stava interrogando il database in applicazione per ogni riga; Funzionava su 5.000 linee, impiegava 9 ore su 4 milioni di linee e si fermava. Quando l’intelligenza artificiale ha suggerito una soluzione vettorizzata (batch), il tempo è stato ridotto a 40 secondi. Lezione: il codice che funziona su Small Data potrebbe bloccarsi su Big Data; Considera l'efficienza.
Quattro modelli copiabili
1) Richiesta SQL con schema:
Il tuo ruolo: assistente SQL (PostgreSQL). Tabelle:- ordini(id, customer_id, data timestamp, importo numerico)- clienti(id, testo città)Attività: ottenere il fatturato totale e il numero di ordini per città nel 2024, ordinati per fatturato in ordine decrescente. Spiega come gestisci le città NULL. Testerò prima la query con LIMIT; Generazione AGGIORNA/ELIMINA.
2) processo panda con checkpoint:
Ho DataFrames df (ordini) e df_customers (clienti). Calcola l'importo medio per città. IMPORTANTE: stampa il numero di righe prima e dopo l'unione in modo da poter vedere se c'è duplicazione. Spiega in quale colonna hai effettuato l'unione e perché hai scelto interno/sinistra.
3) Spiegazione e verifica del codice:
Spiega il seguente codice panda riga per riga: cosa fa ogni riga, quali presupposti fa, in quali casi potrebbe dare risultati errati? Fammi sapere se ho usato la funzione fudge. Codice: [incolla]
4) Debug:
Questo codice dà questo errore. Messaggio di errore completo: [incolla]. Codice: [incolla]. Spiegare la causa RADICE dell'errore e correggerla. Risolvilo risolvendo effettivamente il problema, non silenziando l'avviso. Indicare inoltre se la correzione ha modificato l'output.
Prompt debole / Prompt forte
Suggerimento debole:
Scrivi una query che mi fornisca le vendite per città.
I nomi delle tabelle, le colonne, il tipo di database e il comportamento NULL non sono chiari. L'intelligenza artificiale è comune, probabilmente produrrà una query che non si adatta alla tua tabella.
Suggerimento potente:
Il tuo ruolo: assistente SQL (MySQL 8). Tabella: vendite (id, città varchar, importo decimale, data). Compito: ottenere l'importo totale e medio, il numero di ordini per città per l'anno 2024; Ordina decrescente per importo totale; Mostra solo le città con più di 100 ordini (HAVING).NULL esclude la città. Spiegare la domanda; Proverò con LIMIT.
Qui database, schema, filtro, ordinamento e regola NULL sono evidenti.
Errori comuni
- Eseguire il codice senza leggerlo. Il codice funzionante non è corretto; Anche il codice che manipola la colonna sbagliata viene eseguito senza errori.
- Non controllare il numero di righe dopo l'unione/JOIN. La chiave sbagliata duplica silenziosamente le righe e gonfia i totali.
- Non verificare la funzione di adattamento. L’intelligenza artificiale può suggerire metodi che non esistono; Conferma dal documento che non lo riconosci.
- Non pensare all'efficienza. applicare/lavorare in loop su piccoli arresti anomali di dati su milioni di righe; vettorizzare.
- Esegui direttamente sul database di produzione. Soprattutto eseguire UPDATE/DELETE senza WHERE o testing è disastroso.
Suggerimento: prendi l'abitudine di aggiungere una "riga di convalida" a ogni pezzo di codice che ricevi dall'intelligenza artificiale: un numero di righe pre e post-elaborazione, alcune righe campione e un totale critico manuale. Questi tre controlli rilevano gli errori logici più silenziosi.
In sintesi
L’intelligenza artificiale è un partner potente che produce rapidamente codice SQL e Panda, ma non è un’autorità cieca. Dategli chiaramente lo schema e lo scopo; Leggi il codice che produce come se lo avessi scritto tu stesso; Controlla il numero di righe, le funzioni di adattamento e la velocità effettiva dopo l'unione/JOIN; Non eseguirlo senza testarlo sul database di produzione. Durante il debug, mira a risolvere il problema, non a metterlo a tacere. Il codice che funziona non è il codice corretto; Solo tu puoi garantire la precisione.
Compito dell'applicazione
Scegli una domanda di analisi (ad esempio "fatturato mensile per canale") e richiedi il codice all'intelligenza artificiale sia con SQL che con panda. Leggi entrambi i codici riga per riga, controlla il numero di righe dopo l'unione/JOIN e verifica manualmente almeno una somma critica. Confronta se i due codici producono lo stesso risultato; Se diverso, scopri perché.
lista di controllo
- [ ] Ho fornito chiaramente la tabella/schema e lo scopo all'IA?
- [ ] Ho letto e compreso il codice prodotto riga per riga?
- [ ] Ho controllato il numero di righe dopo l'unione/JOIN?
- [ ] Ho verificato le funzioni che non riconosco dalla documentazione?
- [ ] Ho testato prima il codice su Safe/Small Data e non nell'ambiente di produzione?