Vinster:
- Förmåga att ta robust SQL- och pandaskod och läsa och verifiera den rad för rad genom att ge artificiell intelligens ett tydligt schema och syfte
- Möjlighet att fånga tysta fel som radantal, passningsfunktion och genomströmning efter sammanfogning/JOIN
- Möjlighet att lösa problemet i felsökning utan att tysta det och undvika att köra koden utan att testa den i produktionsmiljön
Datavetenskap har två primära språk: SQL (Structured Query Language - språket för att söka efter data från databaser) och Python (specifikt pandas-biblioteket - standardverktyget för att manipulera tabeller programmatiskt). I den här enheten kommer vi att lära oss att använda AI som en kodpartner: få solid SQL- och pandaskod från den med rätt frågor, läsa och validera den koden, felsöka den och aldrig köra den i blindo. AI skriver repetitiv kod på sekunder istället för minuter; Men det är ditt jobb att se till att koden den producerar bearbetar rätt kolumn med rätt logik. Arbetskod betyder inte korrekt kod.
Varför det är kraftfullt men riskabelt att producera kod med AI
AI ger tre stora fördelar i kodgenerering: hastighet (skriver en 30-raders grupp-för-pivot-operation på några sekunder), påminnelse (påminner dig om en pandafunktion du glömt) och undervisning (förklarar koden rad för rad). Men det medför tre risker: tyst logikfel (kod som summerar fel kolumn körs utan fel), anpassad funktion (föreslår en metod som inte finns) och avkastningsfälla (kod som fungerar på små data men kraschar vid 10 miljoner rader). Så den gyllene regeln: Läs AI:s kod som om du skrivit den själv. Kör inte den linje du inte förstår.
SQL: bearbeta data vid källan
SQL låter dig hämta data från databasen och bearbeta den där; Du kan sammanfatta miljontals rader utan att dra in dem i Python. Grundläggande byggstenar: SELECT (vilka kolumner), WHERE (vilka rader), GROUP BY (gruppera och sammanfatta), JOIN (sammanfoga tabeller), HAVING (post-group filter). AI är till stor hjälp för att skriva komplexa JOINs och fönsterfunktioner, men se till att kontrollera två saker: är JOIN via rätt nyckel (fel nyckel duplicerar rader) och är filterlogiken korrekt (särskilt NULL-beteende och datumintervall).
Varning: Kör inte en AI-genererad SQL-fråga direkt mot produktionsdatabasen. Testa med en liten kopia eller LIMIT först. Kör aldrig en UPDATE/DELETE-fråga utan att validera WHERE-villkoret; Ett fel WHERE kan ta bort hela tabellen.
Python/pandas: flexibel analys
pandas är standardsättet att manipulera tabeller (DataFrame) i Python. Den mest effektiva användningen av AI är att ge det ett tydligt schema och syfte. De vanligaste operationerna: filter, groupby, merge, pivot_table, applicera. AI skriver dessa snabbt; Det du vill kontrollera är logiken: är grupperingen i rätt kolumn, har sammanslagningen ändrat antalet rader oväntat (kontrollera alltid antalet rader efter sammanslagningen), ändrar kedjeoperationerna originalet.
transaktion
SQL
pandor
kontrollpunkt
Filtrering
VAR
df[df.x > 5]
NULL/NaN-beteende
gruppering
GRUPP EFTER
df.groupby()
Är det rätt kolumn?
slå samman
GÅ MED
df.merge()
Ändring av radantal
Sammanfattning
AVG(), SUM()
.mean(), .sum()
Vilken kolumn som samlades in
Sortera efter
BESTÄLL AV
.sort_values()
Riktning (stigande/fallande)
deduplicering
SÄRSKILDA
.drop_duplicates()
I vilka kolumner?
Felsökning: med AI
När koden misslyckas är AI en utmärkt felsökningspartner. Ge det hela felmeddelandet och det relevanta kodavsnittet. Men se upp för två fällor. Först kan AI föreslå en lösning som "tystar ner" felet (t.ex. döljer varningar) - detta fixar inte felet, det döljer det. För det andra ändrar AI ibland tyst ett annat beteende medan man "löser" ett problem. Regel: förstå korrigeringen, lös inte tyst, och kontrollera att utdata fortfarande är korrekt efter korrigeringen.
Vill ha tolkbar och underhållbar kod
När du köper kod från AI, be om kod som är läsbar och underhållbar, inte bara kod som "fungerar". När du eller en kollega öppnar den koden månader senare bör den kunna förstå vad den gör. För att göra detta, gör det till en vana att låta AI:en inkludera tre saker: meningsfulla variabelnamn (orders_temiz, inte df2), korta kommentarsrader vid kritiska steg (förklarar varför, inte vad som görs) och en namngiven konstant istället för ett magiskt tal (ACCEPT_ESIGI = 0,85 istället för 0,85 begravd i koden). Undvik även långa enkelradskedjor (förbinder fem åtgärder på en rad); dessa gör felsökning svårt. Som standard producerar AI ofta kortfattad och "smart" kod; Om du tydligt säger "skriv läsbart, tolkbart, underhållbart" kommer du att få en mycket mer underhållbar utdata. Detta är också grunden för reproducerbarhet (enhet 10): kod som inte förstås är kod som inte kan köras om på ett säkert sätt.
tre minifodral
Fall 1 — JOIN-replikering. En analytiker kombinerade beställningarna med produkttabellen och fann att den totala omsättningen var 3 gånger högre. Orsak: varje produkt hade flera rader (olika färger) i produkttabellen; JOIN duplicerade varje beställning. AI:s kod "fungerade", men antalet rader hade hoppat från 240 tusen till 690 tusen. Lektion: kontrollera alltid antalet rader efter sammanfogning/JOIN.
Fall 2 — Anpassningsfunktion. Han föreslog AI df.groupby('x').summarize() till en praktikant; Det finns ingen sådan metod i pandor (det finns .agg()). Koden fungerade inte, praktikanten var borta i 20 minuter. Lektion: verifiera en funktion som du inte känner igen från dokumentet; AI kan hitta på metoder.
Fall 3 — Avkastningskollaps. En kod frågade databasen i applicering för varje rad; Den gick på 5 000 linjer, tog 9 timmar på 4 miljoner linjer och stannade. När AI föreslog en vektoriserad (batch) lösning reducerades tiden till 40 sekunder. Lektion: kod som fungerar på små data kan krascha på stora data; Tänk på effektivitet.
Fyra kopierbara mallar
1) Begär SQL med schema:
Din roll: SQL-assistent (PostgreSQL). Tabeller:- orders(id, customer_id, date timestamp, number numeric)- customers(id, city text)Uppgift: Få den totala omsättningen och antalet order per stad 2024, sorterat efter omsättning i fallande ordning. Förklara hur du hanterar NULL-städer. Jag kommer att testa frågan med LIMIT först; UPDATE/DELETE generation.
2) pandaprocess med kontrollpunkt:
Jag har DataFrames df (ordrar) och df_customers (kunder). Beräkna medelbelopp per stad. VIKTIGT: skriv ut antalet rader före och efter sammanfogning så att jag kan se om det finns dubbelarbete. Förklara i vilken kolumn du slog ihop och varför du valde inre/vänster.
3) Kodförklaring och verifiering:
Förklara följande pandor rad för rad: vad gör varje rad, vilka antaganden gör den, i vilka fall kan den ge felaktiga resultat? Låt mig veta om jag använde en fudge-funktion. Kod: [klistra in]
4) Felsökning:
Denna kod ger detta fel. Fullständigt felmeddelande: [klistra in]. Kod: [klistra in]. Förklara ROOT-orsaken till felet och åtgärda det. Åtgärda det genom att faktiskt lösa problemet, inte genom att tysta varningen. Ange även om fixen ändrade utdata.
Svag prompt / Stark prompt
Svag uppmaning:
Skriv en fråga som ger mig försäljning per stad.
Tabellnamn, kolumner, databastyp, NULL-beteende är otydliga. AI är vanligt, det kommer förmodligen att producera en fråga som inte passar ditt bord.
Kraftfull uppmaning:
Din roll: SQL-assistent (MySQL 8). Tabell: försäljning (id, stad varchar, belopp decimal, datum datum). Uppgift: Få det totala och genomsnittliga beloppet, antal beställningar per stad för år 2024; Sortera minskande efter totalbelopp; Visa endast städer med fler än 100 beställningar (HAVING). NULL exkludera stad. Förklara frågan; Jag ska testa med LIMIT.
Här är databas, schema, filter, sortering och NULL-regel uppenbara.
Vanliga misstag
- Kör koden utan att läsa den. Arbetskoden är inte korrekt kod; Koden som manipulerar fel kolumn körs också utan fel.
- Kontrollerar inte antalet rader efter sammanfogning/JOIN. Fel nyckel duplicerar rader tyst och blåser upp summorna.
- Verifierar inte passningsfunktionen. AI kan föreslå metoder som inte finns; Bekräfta från dokumentet att du inte känner igen det.
- Tänker inte på effektivitet. applicera/loop arbeta på små datakrascher på miljontals rader; vektorisera.
- Kör direkt på produktionsdatabasen. Speciellt att köra UPDATE/DELETE utan WHERE eller testa är katastrofalt.
Tips: Ta för vana att lägga till en "valideringsrad" till varje kod som du får från AI:n ett antal rader före och efter bearbetning, några exempelrader och en kritisk summa för hand. Dessa tre kontroller fångar de flesta tysta logiska fel.
Sammanfattningsvis
AI är en kraftfull partner som snabbt producerar SQL och pandaskod, men det är ingen blind auktoritet. Ge honom planen och syftet tydligt; Läs koden den producerar som om du skrivit den själv; Kontrollera antal rader, passningsfunktioner och genomströmning efter sammanfogning/JOIN; Kör det inte utan att testa det i produktionsdatabasen. När du felsöker, sträva efter att lösa problemet, inte tysta det. Koden som fungerar är inte rätt kod; Bara du kan garantera noggrannhet.
Applikationsuppgift
Välj en analysfråga (t.ex. "månadsomsättning per kanal") och begär kod från AI:n med både SQL och pandor. Läs båda koderna rad för rad, kontrollera antalet rader efter sammanfogning/JOIN och verifiera manuellt minst en kritisk summa. Jämför om de två koderna ger samma resultat; Om olika, ta reda på varför.
checklista
- [ ] Har jag gett tabellen/schemat och syftet tydligt till AI?
- [ ] Läste och förstod jag koden den producerade rad för rad?
- [ ] Kontrollerade jag antalet rader efter sammanfogning/JOIN?
- [ ] Har jag verifierat de funktioner jag inte känner igen från dokumentationen?
- [ ] Har jag testat koden på säker/små data först och inte i produktionsmiljön?