Jednotka 9 / 11

Generovanie kódu: Analýza pomocou AI s Pythonom (pandy) a SQL

zisky:

  • Schopnosť prevziať robustný kód SQL a pandas a čítať a overovať ho riadok po riadku poskytnutím jasnej schémy a účelu umelej inteligencii
  • Schopnosť zachytiť tiché chyby, ako je počet riadkov, funkcia prispôsobenia a priepustnosť po zlúčení/pripojení
  • Schopnosť vyriešiť problém v ladení bez jeho umlčania a vyhnúť sa spusteniu kódu bez jeho testovania v produkčnom prostredí

Dátová veda má dva primárne jazyky: SQL (Structured Query Language – jazyk na dopytovanie údajov z databáz) a Python (konkrétne knižnica pandas – štandardný nástroj na programovú manipuláciu s tabuľkami). V tejto lekcii sa naučíme používať AI ako partnera v kóde: získavať z nej solídny kód SQL a pandas pomocou správnych otázok, čítať a overovať tento kód, ladiť ho a nikdy ho nespúšťať naslepo. AI zapisuje opakujúci sa kód v sekundách namiesto minút; Vašou úlohou je však zabezpečiť, aby kód, ktorý vytvára, spracovával správny stĺpec so správnou logikou. Pracovný kód neznamená správny kód.

Prečo je vytváranie kódu pomocou AI výkonné, ale riskantné

AI poskytuje tri veľké výhody pri generovaní kódu: rýchlosť (zapíše 30-riadkovú operáciu groupby-pivot v priebehu niekoľkých sekúnd), pripomienku (pripomenie vám funkciu pandy, na ktorú ste zabudli) a výučbu (vysvetlí kód riadok po riadku). Ale nesie so sebou tri riziká: tichú logickú chybu (kód, ktorý sčítava nesprávny stĺpec beží bez chýb), prispôsobenú funkciu (navrhuje metódu, ktorá neexistuje) a výnosovú pascu (kód, ktorý funguje na malých údajoch, ale zlyhá pri 10 miliónoch riadkov). Takže zlaté pravidlo: Prečítajte si kód AI, ako keby ste ho napísali sami. Nebehajte po linke, ktorej nerozumiete.

SQL: spracovávať údaje pri zdroji

SQL vám umožňuje získať údaje z databázy a spracovať ich tam; Môžete zhrnúť milióny riadkov bez toho, aby ste ich vtiahli do Pythonu. Základné stavebné kamene: SELECT (ktoré stĺpce), WHERE (ktoré riadky), GROUP BY (zoskupiť a zhrnúť), JOIN (spojiť tabuľky), HAVING (filter po skupine). AI je veľmi nápomocná pri písaní zložitých JOINov a funkcií okien, ale nezabudnite skontrolovať dve veci: či je JOIN cez správny kľúč (nesprávny kľúč duplikuje riadky) a či je správna logika filtra (najmä správanie NULL a rozsahy dátumov).

Upozornenie: Nespúšťajte dotaz SQL vygenerovaný AI priamo proti produkčnej databáze. Najprv otestujte s malou kópiou alebo LIMIT. Nikdy nespúšťajte dotaz UPDATE/DELETE bez overenia podmienky WHERE; Nesprávne WHERE môže odstrániť celú tabuľku.

Python/pandy: flexibilná analýza

pandas je štandardný spôsob manipulácie s tabuľkami (DataFrame) v Pythone. Najúčinnejšie využitie AI je dať jej jasnú schému a účel. Najčastejšie používané operácie: filter, groupby, merge, pivot_table, apply. AI ich píše rýchlo; Čo chcete skontrolovať, je logika: či je zoskupenie v správnom stĺpci, či zlúčenie neočakávane zmenilo počet riadkov (vždy skontrolujte počet riadkov po zlúčení), či reťazové operácie menia pôvodný.

transakcie

SQL

pandy

kontrolný bod

Filtrovanie

KDE

df[df.x > 5]

Správanie NULL/NaN

zoskupenie

GROUP BY

df.groupby()

Je to správny stĺpec?

zlúčiť

PRIPOJTE SA

df.merge()

Zmena počtu riadkov

Zhrnutie

AVG(), SUM()

.mean(), .sum()

Ktorý stĺpec bol zozbieraný

Zoradiť podľa

OBJEDNAŤ PODĽA

.sort_values()

Smer (vzostupne/zostupne)

deduplikácia

ROZDIEĽNÝ

.drop_duplicates()

V ktorých stĺpcoch?

Ladenie: pomocou AI

Keď kód zlyhá, AI je vynikajúcim partnerom na ladenie. Zadajte úplné chybové hlásenie a príslušný útržok kódu. Pozor však na dve nástrahy. Po prvé, AI ​​môže navrhnúť riešenie, ktoré „stíši“ chybu (napr. skrytie upozornení) – to chybu neopraví, ale skryje. Po druhé, AI niekedy pri „riešení“ problému potichu zmení iné správanie. Pravidlo: pochopte opravu, vyriešte nie stlmte a overte, či je výstup po oprave stále správny.

Chcete interpretovateľný a udržiavateľný kód

Pri nákupe kódu od AI žiadajte kód, ktorý je čitateľný a udržiavateľný, nielen kód, ktorý „funguje“. Keď vy alebo váš kolega otvoríte tento kód o mesiace neskôr, mal by byť schopný pochopiť, čo robí. Aby ste to dosiahli, urobte si zvyk, aby AI ​​zahŕňala tri veci: zmysluplné názvy premenných (orders_temiz, nie df2), krátke riadky komentárov v kritických krokoch (vysvetľujúce prečo, nie to, čo sa robí) a pomenovanú konštantu namiesto magického čísla (ACCEPT_ESIGI = 0,85 namiesto 0,85 zakopanú v kóde). Vyhnite sa tiež dlhým jednoriadkovým reťazcom (spájajúcim päť akcií v jednom riadku); tieto sťažujú ladenie. V predvolenom nastavení AI často vytvára stručný a „inteligentný“ kód; Ak jasne poviete „zapísať čitateľný, interpretovateľný, udržiavateľný“, získate oveľa lepšie udržiavateľný výstup. Toto je tiež základom reprodukovateľnosti (jednotka 10): kód, ktorý nie je pochopený, je kód, ktorý sa nedá bezpečne znova spustiť.

tri mini prípady

Prípad 1 – replikácia JOIN. Analytik spojil objednávky s tabuľkou produktov a zistil, že celkový obrat je 3-krát vyšší. Príčina: každý produkt mal v tabuľke produktov viacero riadkov (rôzne farby); JOIN duplikoval každú objednávku. Kód AI „fungoval“, ale počet riadkov vyskočil z 240 tisíc na 690 tisíc. Ponaučenie: po zlúčení/JOIN vždy skontrolujte počet riadkov.

Prípad 2 – Montážna funkcia. Navrhol AI df.groupby('x').summarize() stážistovi; V pandách takáto metóda neexistuje (existuje .agg()). Kód nefungoval, stážista sa stratil na 20 minút. Lekcia: overte funkciu, ktorú nepoznáte z dokumentu; AI môže vytvárať metódy.

Prípad 3 – Zrútenie výnosu. Jeden kód sa dotazoval na databázu v aplikácii pre každý riadok; Bežalo na 5000 linkách, trvalo to 9 hodín na 4 miliónoch liniek a zastavilo sa. Keď AI navrhla vektorizované (dávkové) riešenie, čas sa skrátil na 40 sekúnd. Lekcia: kód, ktorý funguje na malých dátach, môže zlyhať na veľkých dátach; Zvážte efektivitu.

Štyri kopírovateľné šablóny

1) Požiadanie SQL so schémou:

Vaša rola: SQL asistent (PostgreSQL). Tabuľky:- objednávky(id, customer_id, dátum časová pečiatka, čiastka numerická)- zákazníci(id, text mesta)Úloha: Získajte celkový obrat a počet objednávok na mesto v roku 2024, zoradené podľa obratu v zostupnom poradí. Vysvetlite, ako zaobchádzate s mestami NULL. Najprv otestujem dotaz s LIMIT; Generovanie UPDATE/DELETE.

2) proces pandy s kontrolným bodom:

Mám DataFrames df (objednávky) a df_customers (zákazníci). Vypočítajte priemernú sumu na mesto. DÔLEŽITÉ: vytlačte počet riadkov pred a po zlúčení, aby som videl, či nedochádza k duplicite. Vysvetlite, v ktorom stĺpci ste sa zlúčili a prečo ste zvolili vnútorný/ľavý.

3) Vysvetlenie a overenie kódu:

Vysvetlite nasledujúci kód pandy riadok po riadku: čo robí každý riadok, aké predpoklady robí, v akých prípadoch môže poskytnúť nesprávne výsledky? Dajte mi vedieť, či som použil funkciu fudge. Kód: [prilepiť]

4) Ladenie:

Tento kód dáva túto chybu. Úplné chybové hlásenie: [prilepiť]. Kód: [prilepiť]. Vysvetlite ROOT príčinu chyby a opravte ju. Opravte to skutočným vyriešením problému, nie stíšením upozornenia. Tiež uveďte, či oprava zmenila výstup.

Slabá výzva / Silná výzva

Slabá výzva:

Napíšte dopyt, ktorý mi poskytne predaj podľa mesta.

Názvy tabuliek, stĺpce, typ databázy, správanie NULL sú nejasné. AI je bežná, pravdepodobne vytvorí dotaz, ktorý sa nezmestí do vašej tabuľky.

Výkonná výzva:

Vaša rola: SQL asistent (MySQL 8). Tabuľka: predaj (id, mesto varchar, desatinná čiastka, dátum). Úloha: Získajte celkovú a priemernú sumu, počet objednávok na mesto za rok 2024; Zoradiť klesajúci podľa celkovej sumy; Zobraziť iba mestá s viac ako 100 objednávkami (MAJÚ). NULL vylúčiť mesto. Vysvetlite dotaz; Budem testovať s LIMIT.

Databáza, schéma, filter, triedenie a pravidlo NULL sú tu zrejmé.

Časté chyby

  • Spustenie kódu bez jeho prečítania. Pracovný kód nie je správny kód; Kód, ktorý manipuluje s nesprávnym stĺpcom, tiež beží bez chýb.
  • Po zlúčení/JOIN sa nekontroluje počet riadkov. Nesprávny kľúč ticho duplikuje riadky a zvyšuje súčty.
  • Neoveruje sa funkcia kovania. AI môže navrhnúť metódy, ktoré neexistujú; Z dokumentu potvrďte, že ho nepoznáte.
  • Nemyslieť na efektivitu. aplikovať/zacykliť prácu na malých zlyhaniach údajov na miliónoch riadkov; vektorizovať.
  • Spustite priamo v produkčnej databáze. Najmä spúšťanie UPDATE/DELETE bez WHERE alebo testovania je katastrofálne.
Tip: Zvyknite si pridať „overovací riadok“ ku každému kúsku kódu, ktorý dostanete od AI: počet riadkov pred a po spracovaní, niekoľko vzorových riadkov a kritický súčet ručne. Tieto tri kontroly zachytávajú väčšinu tichých logických chýb.

V súhrne

AI je výkonný partner, ktorý rýchlo vytvára kód SQL a pandas, ale nie je to slepá autorita. Jasne mu dajte schému a účel; Čítajte kód, ktorý vytvára, ako keby ste ho napísali sami; Skontrolujte počet riadkov, funkcie prispôsobenia a priepustnosť po zlúčení/SPOJENÍ; Nespúšťajte ho bez testovania v produkčnej databáze. Pri ladení sa snažte problém vyriešiť, nie ho umlčať. Kód, ktorý funguje, nie je správny kód; Iba vy môžete zaručiť presnosť.

Aplikačná úloha

Vyberte si analytickú otázku (napr. „mesačný obrat na kanál“) a vyžiadajte si kód od AI pomocou SQL aj pandy. Prečítajte si oba kódy riadok po riadku, skontrolujte počet riadkov po zlúčení/JOIN a manuálne overte aspoň jeden kritický súčet. Porovnajte, či tieto dva kódy prinášajú rovnaký výsledok; Ak sa líši, zistite prečo.

kontrolný zoznam

  • [ ] Poskytol som AI jasne tabuľku/schému a účel?
  • [ ] Čítal som a porozumel som kódu, ktorý vytvoril, riadok po riadku?
  • [ ] Skontroloval som počet riadkov po zlúčení/JOIN?
  • [ ] Overil som funkcie, ktoré nepoznám z dokumentácie?
  • [ ] Testoval som kód najskôr na bezpečných/malých údajoch a nie v produkčnom prostredí?