Winst:
- Mogelijkheid om robuuste SQL- en panda-code te gebruiken en deze regel voor regel te lezen en te verifiëren door een duidelijk schema en doel aan kunstmatige intelligentie te geven
- Mogelijkheid om stille fouten op te sporen, zoals het aantal rijen, de aanpassingsfunctie en de doorvoer na samenvoegen/JOIN
- Mogelijkheid om het probleem tijdens debuggen op te lossen zonder het uit te schakelen en te voorkomen dat de code wordt uitgevoerd zonder deze in de productieomgeving te testen
Datawetenschap kent twee hoofdtalen: SQL (Structured Query Language – de taal voor het opvragen van gegevens uit databases) en Python (in het bijzonder de Pandas-bibliotheek – de standaardtool voor het programmatisch manipuleren van tabellen). In deze unit leren we AI als codepartner te gebruiken: er solide SQL- en pandacode uit halen met de juiste vragen, die code lezen en valideren, fouten opsporen en deze nooit blindelings uitvoeren. AI schrijft repetitieve code in seconden in plaats van minuten; Maar het is jouw taak om ervoor te zorgen dat de code die het produceert de juiste kolom met de juiste logica verwerkt. Werkende code betekent niet dat de code juist is.
Waarom het produceren van code met AI krachtig maar riskant is
AI biedt drie grote voordelen bij het genereren van code: snelheid (schrijft binnen enkele seconden een group-by-pivot-bewerking van 30 regels), herinnering (herinnert u aan een pandafunctie die u bent vergeten) en onderwijs (legt de code regel voor regel uit). Maar het brengt drie risico's met zich mee: een stille logische fout (code die de verkeerde kolomuitvoeringen optelt zonder fouten), een gepaste functie (suggereert een methode die niet bestaat) en een yield trap (code die werkt op kleine gegevens, maar crasht bij 10 miljoen rijen). Dus de gouden regel: lees de code van de AI alsof je hem zelf hebt geschreven. Ga niet over de lijn die u niet begrijpt.
SQL: gegevens verwerken bij de bron
Met SQL kunt u gegevens uit de database ophalen en daar verwerken; Je kunt miljoenen regels samenvatten zonder ze in Python te trekken. Basisbouwstenen: SELECT (welke kolommen), WHERE (welke rijen), GROUP BY (groeperen en samenvatten), JOIN (tabellen samenvoegen), HAVING (post-groepsfilter). AI is zeer nuttig bij het schrijven van complexe JOIN's en vensterfuncties, maar zorg ervoor dat u twee dingen controleert: gaat de JOIN via de juiste sleutel (de verkeerde sleutel dupliceert rijen) en is de filterlogica correct (vooral NULL-gedrag en datumbereiken).
Let op: Voer een door AI gegenereerde SQL-query niet rechtstreeks op de productiedatabase uit. Test eerst met een kleine kopie of LIMIT. Voer nooit een UPDATE/DELETE-query uit zonder de WHERE-voorwaarde te valideren; Een verkeerde WHERE kan de hele tabel verwijderen.
Python/panda's: flexibele analyse
pandas is de standaardmanier om tabellen (DataFrame) in Python te manipuleren. Het meest efficiënte gebruik van AI is om het een duidelijk schema en doel te geven. Meest gebruikte bewerkingen: filteren, groeperen, samenvoegen, draaitabel, toepassen. AI schrijft deze snel; Wat je wilt controleren is de logica: staat de groepering in de juiste kolom, is door het samenvoegen het aantal rijen onverwacht veranderd (controleer altijd het aantal rijen na het samenvoegen), veranderen de ketenbewerkingen het origineel.
transactie
SQL
panda's
controlepunt
Filteren
WAAR
df[df.x > 5]
NULL/NaN-gedrag
groeperen
GROEP DOOR
df.groupby()
Is dit de juiste kolom?
samenvoegen
DOE MEE
df.merge()
Wijziging rijtelling
Samenvatting
AVG(), SOM()
.gemiddelde(), .som()
Welke kolom is verzameld
Sorteer op
BESTEL DOOR
.sort_values()
Richting (oplopend/aflopend)
ontdubbeling
VERSCHILLEND
.drop_duplicates()
In welke kolommen?
Foutopsporing: met AI
Wanneer code faalt, is AI een uitstekende foutopsporingspartner. Geef het de volledige foutmelding en het relevante codefragment. Maar pas op voor twee valkuilen. Ten eerste kan de AI een oplossing voorstellen die de fout “stilt” (bijvoorbeeld door waarschuwingen te verbergen) – dit herstelt de fout niet, maar verbergt deze. Ten tweede verandert AI soms stilletjes ander gedrag terwijl het een probleem ‘oplost’. Regel: begrijp de oplossing, oplossing niet dempen, en controleer of de uitvoer na de oplossing nog steeds correct is.
Wilt u interpreteerbare en onderhoudbare code
Wanneer u code van AI koopt, vraag dan om code die leesbaar en onderhoudbaar is, en niet alleen om code die ‘werkt’. Wanneer jij of een collega maanden later die code opent, zou hij moeten kunnen begrijpen wat hij doet. Om dit te doen, moet je er een gewoonte van maken om de AI drie dingen te laten opnemen: betekenisvolle namen van variabelen (orders_temiz, niet df2), korte commentaarregels bij kritische stappen (uitleggen waarom, niet wat er wordt gedaan), en een benoemde constante in plaats van een magisch getal (ACCEPT_ESIGI = 0,85 in plaats van 0,85 verborgen in de code). Vermijd ook lange ketens van één regel (vijf acties op één regel verbinden); deze maken het debuggen moeilijk. Standaard produceert AI vaak beknopte en ‘slimme’ code; Als u duidelijk zegt "schrijf leesbaar, interpreteerbaar, onderhoudbaar", krijgt u een veel beter onderhoudbare uitvoer. Dit is ook de basis van reproduceerbaarheid (Unit 10): code die niet wordt begrepen, is code die niet veilig opnieuw kan worden uitgevoerd.
drie minikoffers
Geval 1 — JOIN-replicatie. Een analist combineerde de orders met de producttabel en constateerde dat de totale omzet 3 keer hoger lag. Oorzaak: elk product had meerdere rijen (verschillende kleuren) in de producttabel; JOIN heeft elke bestelling gedupliceerd. De code van de AI "werkte", maar het aantal regels was gestegen van 240.000 naar 690.000. Les: controleer altijd het aantal regels na samenvoegen/JOIN.
Geval 2 — Aanpasfunctie. Hij stelde AI df.groupby('x').summarize() voor aan een stagiair; Een dergelijke methode bestaat niet bij panda's (er is .agg()). De code werkte niet, de stagiair was 20 minuten verdwaald. Les: verifieer een functie die u niet herkent uit het document; AI kan methoden verzinnen.
Geval 3 — Instorting van de opbrengsten. Voor elke rij werd één code in de database doorzocht; Het draaide op 5.000 lijnen, duurde 9 uur op 4 miljoen lijnen en stopte. Toen AI een gevectoriseerde (batch) oplossing voorstelde, werd de tijd teruggebracht tot 40 seconden. Les: code die op kleine data werkt, kan op big data crashen; Denk aan efficiëntie.
Vier kopieerbare sjablonen
1) SQL aanvragen met schema:
Jouw rol: SQL-assistent (PostgreSQL). Tabellen: - bestellingen (id, klant_id, datum tijdstempel, numeriek bedrag) - klanten (id, plaatstekst) Taak: Verkrijg de totale omzet en het aantal bestellingen per stad in 2024, gesorteerd op omzet in aflopende volgorde. Leg uit hoe je met NULL-steden omgaat. Ik zal de query eerst testen met LIMIT; UPDATE/DELETE-generatie.
2) Panda-proces met controlepunt:
Ik heb DataFrames df (bestellingen) en df_customers (klanten). Bereken het gemiddelde bedrag per stad. BELANGRIJK: druk het aantal rijen voor en na het samenvoegen af, zodat ik kan zien of er sprake is van duplicatie. Leg uit in welke kolom je hebt samengevoegd en waarom je voor binnen/links hebt gekozen.
3) Code-uitleg en verificatie:
Leg de volgende panda-code regel voor regel uit: wat doet elke regel, welke aannames wordt er gedaan, in welke gevallen kan deze verkeerde resultaten opleveren? Laat het me weten als ik een fudge-functie heb gebruikt. Code: [plakken]
4) Foutopsporing:
Deze code geeft deze fout. Volledige foutmelding: [plakken]. Code: [plakken]. Leg de ROOT-oorzaak van de fout uit en los deze op. Los het probleem op door het probleem daadwerkelijk op te lossen, niet door de waarschuwing uit te zetten. Geef ook aan of de oplossing de uitvoer heeft gewijzigd.
Zwakke prompt/sterke prompt
Zwakke prompt:
Schrijf een zoekopdracht die mij de verkoop per stad oplevert.
Tabelnamen, kolommen, databasetype en NULL-gedrag zijn onduidelijk. De AI is gebruikelijk, deze zal waarschijnlijk een zoekopdracht opleveren die niet in uw tabel past.
Krachtige prompt:
Jouw rol: SQL-assistent (MySQL 8). Tabel: verkoop (id, stad varchar, bedrag decimaal, datum datum). Taak: Verkrijg het totale en gemiddelde bedrag, aantal bestellingen per stad voor het jaar 2024; Sorteer aflopend op totaalbedrag; Toon alleen steden met meer dan 100 bestellingen (HAVING). NULL sluit stad uit. Leg de vraag uit; Ik ga testen met LIMIT.
Hier zijn database, schema, filter, sortering en NULL-regel duidelijk.
Veel voorkomende fouten
- Voer de code uit zonder deze te lezen. Werkende code is geen correcte code; Ook de code die de verkeerde kolom manipuleert, draait foutloos.
- Het aantal rijen niet gecontroleerd na samenvoegen/JOIN. De verkeerde sleutel dupliceert stilletjes rijen en verhoogt de totalen.
- De aanpasfunctie wordt niet geverifieerd. AI kan methoden suggereren die niet bestaan; Bevestig uit het document dat u het niet herkent.
- Niet aan efficiëntie denken. apply/loop werkt aan kleine datacrashes op miljoenen rijen; vectoriseren.
- Rechtstreeks uitvoeren op de productiedatabase. Vooral het uitvoeren van UPDATE/DELETE zonder WHERE of testen is rampzalig.
Tip: Maak er een gewoonte van om een "validatieregel" toe te voegen aan elk stukje code dat u van de AI ontvangt: een aantal regels voor en na de verwerking, een paar voorbeeldregels en een kritisch totaal met de hand. Deze drie controles vangen de meeste stille logische fouten op.
Samengevat
AI is een krachtige partner die snel SQL- en pandacode produceert, maar is geen blinde autoriteit. Geef hem het plan en het doel duidelijk; Lees de code die het produceert alsof je het zelf hebt geschreven; Controleer het aantal rijen, pasfuncties en doorvoer na samenvoegen/JOIN; Voer het niet uit zonder het te testen in de productiedatabase. Probeer bij het debuggen het probleem op te lossen en niet het zwijgen op te leggen. De code die werkt is niet de juiste code; Alleen jij kunt de nauwkeurigheid garanderen.
Applicatie taak
Kies een analysevraag (bijvoorbeeld ‘maandelijkse omzet per kanaal’) en vraag code aan bij de AI met zowel SQL als panda’s. Lees beide code regel voor regel, controleer het aantal regels na merge/JOIN en verifieer handmatig minimaal één kritische som. Vergelijk of de twee codes hetzelfde resultaat opleveren; Als dit anders is, zoek dan uit waarom.
controlelijst
- [ ] Heb ik de tabel/het schema en het doel duidelijk aan de AI gegeven?
- [ ] Heb ik de code die het produceerde regel voor regel gelezen en begrepen?
- [ ] Heb ik het aantal regels gecontroleerd na merge/JOIN?
- [ ] Heb ik de functies die ik niet herken uit de documentatie geverifieerd?
- [ ] Heb ik de code eerst getest op veilige/kleine data en niet in de productieomgeving?