Печалби:
- Възможност за вземане на стабилен SQL и пандас код и четене и проверка ред по ред чрез даване на ясна схема и цел на изкуствения интелект
- Възможност за улавяне на тихи грешки като брой на редове, функция за напасване и пропускателна способност след сливане/СЪЕДИНЯВАНЕ
- Възможност за разрешаване на проблема при отстраняване на грешки, без да го заглушавате и избягване на стартиране на кода, без да го тествате в производствената среда
Data science има два основни езика: SQL (Structured Query Language — езикът за запитване на данни от бази данни) и Python (по-специално библиотеката pandas — стандартният инструмент за програмно манипулиране на таблици). В този модул ще се научим да използваме AI като кодов партньор: получаване на солиден SQL и pandas код от него с правилните въпроси, четене и валидиране на този код, отстраняване на грешки и никога не го изпълнявайте на сляпо. AI пише повтарящ се код за секунди вместо за минути; Но вашата работа е да се уверите, че кодът, който произвежда, обработва правилната колона с правилната логика. Работен код не означава правилен код.
Защо създаването на код с AI е мощно, но рисковано
AI предоставя три големи предимства при генерирането на код: скорост (записва 30-редова операция групиране по ос за секунди), напомняне (напомня ви за функция на pandas, която сте забравили) и обучение (обяснява кода ред по ред). Но носи три риска: тиха логическа грешка (код, който сумира грешната колона, се изпълнява без грешки), монтирана функция (предлага метод, който не съществува) и прихващане на доходността (код, който работи с малки данни, но се срива при 10 милиона реда). Така че златното правило: Прочетете кода на AI, сякаш сте го написали сами. Не пускайте репликата, която не разбирате.
SQL: обработва данни при източника
SQL ви позволява да извличате данни от базата данни и да ги обработвате там; Можете да обобщите милиони редове, без да ги изтегляте в Python. Основни градивни елементи: SELECT (кои колони), WHERE (кои редове), GROUP BY (групиране и обобщаване), JOIN (съединяване на таблици), HAVING (филтър след групиране). AI е много полезен при писането на сложни JOIN и прозоречни функции, но не забравяйте да проверите две неща: дали JOIN чрез правилния ключ (грешният ключ дублира редове) и правилна ли е логиката на филтъра (особено NULL поведение и диапазони от дати).
Внимание: Не изпълнявайте генерирана от AI SQL заявка директно срещу производствената база данни. Тествайте първо с малко копие или ОГРАНИЧЕНИЕ. Никога не изпълнявайте заявка UPDATE/DELETE без валидиране на условието WHERE; Грешно WHERE може да изтрие цялата таблица.
Python/pandas: гъвкав анализ
pandas е стандартният начин за манипулиране на таблици (DataFrame) в Python. Най-ефективното използване на AI е да му се даде ясна схема и цел. Най-често използвани операции: филтър, групиране, сливане, обобщена таблица, прилагане. AI ги пише бързо; Това, което искате да проверите, е логиката: дали групирането е в правилната колона, дали сливането е променило неочаквано броя на редовете (винаги проверявайте броя на редовете след сливането), дали верижните операции променят оригинала.
сделка
SQL
панди
контролно-пропускателен пункт
Филтриране
КЪДЕ
df[df.x > 5]
NULL/NaN поведение
групиране
ГРУПИРАНЕ ПО
df.groupby()
Дясната колона ли е?
сливане
ПРИСЪЕДИНЕТЕ СЕ
df.merge()
Промяна в броя на редовете
Резюме
AVG(), SUM()
.mean(), .sum()
Коя колона е събрана
Сортирай по
ПОРЪЧАЙТЕ ПО
.sort_values()
Посока (възходящо/низходящо)
дедупликация
РАЗЛИЧЕН
.drop_duplicates()
В кои колони?
Отстраняване на грешки: с AI
Когато кодът се провали, AI е отличен партньор за отстраняване на грешки. Дайте му пълното съобщение за грешка и съответния кодов фрагмент. Но се пазете от два капана. Първо, AI може да предложи решение, което „заглушава“ грешката (напр. скриване на предупреждения) — това не коригира грешката, а я скрива. Второ, AI понякога тихо променя друго поведение, докато „решава“ проблем. Правило: разберете корекцията, разрешете без заглушаване и проверете дали изходът все още е правилен след корекцията.
Искате интерпретируем и поддържаем код
Когато купувате код от AI, поискайте код, който може да се чете и поддържа, а не просто код, който „работи“. Когато вие или ваш колега отворите този код месеци по-късно, той трябва да може да разбере какво прави. За да направите това, създайте си навик AI да включва три неща: смислени имена на променливи (orders_temiz, не df2), кратки редове за коментари при критични стъпки (обясняващи защо, а не какво се прави) и наименована константа вместо магическо число (ACCEPT_ESIGI = 0,85 вместо 0,85, заровено в кода). Също така избягвайте дълги едноредови вериги (свързващи пет действия в един ред); те затрудняват отстраняването на грешки. По подразбиране AI често създава кратък и „умен“ код; Ако ясно кажете „пишете четимо, интерпретируемо, поддържаемо“, ще получите много по-поддържащ се резултат. Това е и основата на възпроизводимостта (Единица 10): кодът, който не се разбира, е код, който не може да бъде повторно стартиран безопасно.
три мини калъфа
Случай 1 — JOIN репликация. Анализатор комбинира поръчките с продуктовата таблица и установи, че общият оборот е 3 пъти по-висок. Причина: всеки продукт имаше няколко реда (различни цветове) в продуктовата таблица; JOIN дублира всяка поръчка. Кодът на AI "работеше", но броят на редовете беше скочил от 240 хиляди на 690 хиляди. Урок: винаги проверявайте броя на редовете след сливане/JOIN.
Случай 2 — Фитинг функция. Той предложи AI df.groupby('x').summarize() на стажант; В pandas няма такъв метод (има .agg()). Кодът не работи, стажантът беше изгубен за 20 минути. Урок: проверете функция, която не разпознавате от документа; AI може да създава методи.
Случай 3 — Срив на доходността. Един код правеше запитване към базата данни в приложението за всеки ред; Работеше на 5000 реда, отне 9 часа на 4 милиона реда и спря. Когато AI предложи векторизирано (партидно) решение, времето беше намалено до 40 секунди. Урок: кодът, който работи с малки данни, може да се срине при големи данни; Помислете за ефективността.
Четири копируеми шаблона
1) Изискване на SQL със схема:
Вашата роля: SQL асистент (PostgreSQL). Таблици:- поръчки (идентификатор, клиент_идентификатор, клеймо за дата, числова сума)- клиенти (идентификатор, текст на града) Задача: Вземете общия оборот и броя на поръчките за град през 2024 г., сортирани по оборот в низходящ ред. Обяснете как се справяте с NULL градове. Първо ще тествам заявката с LIMIT; АКТУАЛИЗИРАНЕ/ИЗТРИВАНЕ на поколение.
2) процес на pandas с контролна точка:
Имам DataFrames df (поръчки) и df_customers (клиенти). Изчислете средната сума за град. ВАЖНО: отпечатайте броя на редовете преди и след сливането, за да мога да видя дали има дублиране. Обяснете в коя колона сте обединили и защо сте избрали inner/left.
3) Обяснение и проверка на кода:
Обяснете следния код на pandas ред по ред: какво прави всеки ред, какви предположения прави, в какви случаи може да даде грешни резултати? Уведомете ме, ако съм използвал функция за фъдж. Код: [поставете]
4) Отстраняване на грешки:
Този код дава тази грешка. Пълно съобщение за грешка: [поставяне]. Код: [паста]. Обяснете ОСНОВНАТА причина за грешката и я поправете. Поправете го, като действително разрешите проблема, а не като заглушите предупреждението. Също така посочете дали корекцията е променила изхода.
Слаба подкана / Силна подкана
Слаба подкана:
Напишете заявка, която ми дава продажби по град.
Имената на таблици, колони, тип база данни, поведение NULL са неясни. AI е често срещан, вероятно ще създаде заявка, която не отговаря на вашата таблица.
Мощна подкана:
Вашата роля: SQL асистент (MySQL 8). Таблица: продажби (идентификатор, varchar за град, десетична сума, дата и дата). Задача: Получете общата и средна сума, брой поръчки за град за 2024 г.; Сортиране в намаляване по обща сума; Показване само на градове с повече от 100 поръчки (HAVING).NULL изключване на града. Обяснете запитването; Ще тествам с LIMIT.
Тук базата данни, схемата, филтърът, сортирането и правилото NULL са очевидни.
Често срещани грешки
- Изпълнение на кода, без да го четете. Работният код не е правилен код; Кодът, който манипулира грешната колона, също се изпълнява без грешки.
- Не се проверява броят на редовете след сливане/JOIN. Грешният ключ тихо дублира редове и увеличава общите стойности.
- Не се проверява функцията за монтаж. AI може да предложи методи, които не съществуват; Потвърдете от документа, че не го разпознавате.
- Без да мислим за ефективността. прилагане/циклична работа при малки сривове на данни на милиони редове; векторизирам.
- Стартирайте директно в производствена база данни. Особено стартирането на UPDATE/DELETE без WHERE или тестване е катастрофално.
Съвет: Вземете навика да добавяте „линия за валидиране“ към всяка част от кода, която получавате от AI: брой редове преди и след обработката, няколко примерни реда и критична обща сума на ръка. Тези три проверки улавят повечето тихи логически грешки.
В обобщение
AI е мощен партньор, който бързо създава SQL и pandas код, но не е сляп авторитет. Дайте му ясно схемата и целта; Прочетете кода, който произвежда, сякаш сте го написали сами; Проверете броя на редовете, функциите за напасване и пропускателната способност след сливане/JOIN; Не го стартирайте, без да го тествате в производствената база данни. Когато отстранявате грешки, се стремете да разрешите проблема, а не да го заглушите. Кодът, който работи, не е правилният код; Само вие можете да гарантирате точност.
Задача за приложение
Изберете въпрос за анализ (напр. „месечен оборот на канал“) и поискайте код от AI както с SQL, така и с pandas. Прочетете и двата кода ред по ред, проверете броя на редовете след сливане/JOIN и проверете ръчно поне една критична сума. Сравнете дали двата кода дават същия резултат; Ако е различно, разберете защо.
контролен списък
- [ ] Дал ли съм таблицата/схемата и целта ясно на AI?
- [ ] Прочетох ли и разбрах ли кода, който създава ред по ред?
- [ ] Проверих ли броя на редовете след сливане/СЪЕДИНЯВАНЕ?
- [ ] Проверих ли функциите, които не разпознавам от документацията?
- [ ] Тествах ли първо кода върху безопасни/малки данни, а не в производствената среда?