Daromadlar:
- Sun'iy intellektga aniq sxema va maqsadni berish orqali mustahkam SQL va pandas kodini olish va uni satr satr o'qish va tekshirish qobiliyati
- Birlashtirish/Qo'shilishdan keyin qatorlar soni, moslash funktsiyasi va o'tkazish qobiliyati kabi jim xatolarni qo'lga olish qobiliyati
- Muammoni disk raskadrovkada uni o'chirmasdan hal qilish va ishlab chiqarish muhitida sinovdan o'tkazmasdan kodni ishga tushirishdan qochish qobiliyati
Ma'lumotlar fanida ikkita asosiy til mavjud: SQL (Structured Query Language - ma'lumotlar bazalaridan ma'lumotlarni so'rash uchun til) va Python (xususan, pandas kutubxonasi - jadvallarni dasturiy manipulyatsiya qilish uchun standart vosita). Ushbu bo'limda biz AIdan kod hamkori sifatida foydalanishni o'rganamiz: undan to'g'ri savollar bilan qattiq SQL va pandas kodlarini olish, ushbu kodni o'qish va tasdiqlash, disk raskadrovka qilish va uni hech qachon ko'r-ko'rona ishlatmaslik. AI takrorlanuvchi kodni daqiqalar o'rniga soniyalarda yozadi; Lekin u ishlab chiqaradigan kod to'g'ri ustunni to'g'ri mantiq bilan qayta ishlashiga ishonch hosil qilish sizning vazifangizdir. Ishchi kod to'g'ri kodni anglatmaydi.
Nima uchun AI yordamida kod ishlab chiqarish kuchli, ammo xavfli
AI kod ishlab chiqarishda uchta katta afzalliklarni beradi: tezlik (soniyalarda 30 qatorli guruh-burilish operatsiyasini yozadi), eslatma (siz unutgan pandalar funktsiyasini eslatadi) va o'rgatish (kodni satr bo'yicha tushuntiradi). Ammo u uchta xavfni o'z ichiga oladi: jim mantiqiy xato (noto'g'ri ustunni yig'uvchi kod xatosiz ishlaydi), o'rnatilgan funksiya (mavjud bo'lmagan usulni taklif qiladi) va hosil tuzog'i (kichik ma'lumotlarda ishlaydigan, lekin 10 million qatorda ishdan chiqadigan kod). Shunday qilib, oltin qoida: AI kodini o'zingiz yozgandek o'qing. Tushunmagan qatorni ishlatmang.
SQL: ma'lumotlarni manbada qayta ishlash
SQL ma'lumotlar bazasidan ma'lumotlarni olish va u erda qayta ishlash imkonini beradi; Siz millionlab satrlarni Python-ga tortmasdan umumlashtirishingiz mumkin. Asosiy qurilish bloklari: SELECT (qaysi ustunlar), WHERE (qaysi qatorlar), GROUP BY (guruhlash va umumlashtirish), JOIN (jadvallarni birlashtirish), HAVING (guruhdan keyingi filtr). AI murakkab JOIN va oyna funksiyalarini yozishda juda foydali, lekin ikkita narsani tekshirib ko'ring: to'g'ri tugma orqali JOIN (noto'g'ri kalit qatorlarni takrorlaydi) va filtr mantig'i to'g'ri (ayniqsa NULL xatti-harakatlari va sana diapazonlari).
Diqqat: AI tomonidan yaratilgan SQL so'rovini to'g'ridan-to'g'ri ishlab chiqarish ma'lumotlar bazasiga qarshi ishlatmang. Kichik nusxa yoki LIMIT bilan sinab ko'ring. Hech qachon WHERE shartini tasdiqlamasdan YANGILASH/O‘CHIRISh so‘rovini bajarmang; Noto'g'ri WHERE butun jadvalni o'chirib tashlashi mumkin.
Python/pandalar: moslashuvchan tahlil
pandas - bu Python-da jadvallarni (DataFrame) boshqarishning standart usuli. AIdan eng samarali foydalanish unga aniq sxema va maqsadni berishdir. Eng ko'p ishlatiladigan operatsiyalar: filtrlash, guruhlash, birlashtirish, pivot_jadval, qo'llash. AI buni tezda yozadi; Siz tekshirmoqchi bo'lgan narsa mantiq: to'g'ri ustundagi guruhlashmi, birlashma satrlar sonini kutilmaganda o'zgartirdimi (birlashtirgandan keyin har doim qatorlar sonini tekshiring), zanjir operatsiyalari asl nusxani o'zgartiradimi.
tranzaksiya
SQL
pandalar
nazorat punkti
Filtrlash
QAYERDA
df[df.x > 5]
NULL/NaN harakati
guruhlash
GURUH BO'YICHA
df.groupby()
To'g'ri ustunmi?
birlashtirish
QO'SHILING
df.merge()
Qatorlar soni o'zgarishi
Xulosa
AVG(), SUM()
.mean(), .sum()
Qaysi ustun yig'ilgan
Saralash
Buyurtma berish
.sort_values()
Yo'nalish (ko'tarilish / pasayish)
deuplikatsiya
AYRIQ
.drop_duplicates()
Qaysi ustunlarda?
Nosozliklarni tuzatish: AI bilan
Kod ishlamay qolganda, AI nosozliklarni tuzatish bo'yicha mukammal hamkordir. Unga to'liq xato xabari va tegishli kod parchasini bering. Ammo ikkita tuzoqdan ehtiyot bo'ling. Birinchidan, AI xatoni "o'chiruvchi" yechimni taklif qilishi mumkin (masalan, ogohlantirishlarni yashirish) - bu xatoni tuzatmaydi, uni yashiradi. Ikkinchidan, AI ba'zida muammoni "hal qilish" paytida boshqa xatti-harakatni jimgina o'zgartiradi. Qoida: tuzatishni tushuning, hal qiling, ovozni o'chirmang va tuzatishdan keyin ham chiqish to'g'ri ekanligini tekshiring.
Tarjima qilinadigan va saqlanishi mumkin bo'lgan kodni xohlaysiz
AI-dan kod sotib olayotganda, faqat "ishlaydigan" kodni emas, balki o'qilishi mumkin bo'lgan va saqlab qo'yiladigan kodni so'rang. Siz yoki hamkasbingiz ushbu kodni bir necha oydan keyin ochganda, u nima qilishini tushunishi kerak. Buning uchun AI uchta narsani o'z ichiga olishini odat qiling: mazmunli o'zgaruvchilar nomlari (orders_temiz, df2 emas), muhim bosqichlarda qisqa sharh satrlari (nima qilinayotganini emas, nima uchun tushuntiriladi) va sehrli raqam o'rniga nomlangan konstanta (ACCEPT_ESIGI = 0,85 kodda ko'milgan 0,85 o'rniga). Shuningdek, uzun bir qatorli zanjirlardan saqlaning (bir qatorda beshta harakatni ulash); bu disk raskadrovkani qiyinlashtiradi. Odatiy bo'lib, AI ko'pincha ixcham va "aqlli" kod ishlab chiqaradi; Agar siz "o'qilishi mumkin bo'lgan, izohlanadigan, saqlanishi mumkin bo'lgan yozish" deb aniq aytsangiz, siz ancha barqaror natijaga erishasiz. Bu, shuningdek, takrorlanuvchanlikning asosidir (10-birlik): tushunilmagan kod xavfsiz tarzda qayta ishga tushirilmaydigan koddir.
uchta mini holat
1-holat - JOIN replikatsiyasi. Tahlilchi buyurtmalarni mahsulot jadvali bilan birlashtirib, umumiy aylanmani 3 baravar yuqori ekanligini aniqladi. Sababi: har bir mahsulotning mahsulot jadvalida bir nechta qator (turli xil ranglar) bor edi; JOIN har bir buyurtmani takrorlaydi. Sun'iy intellektning kodi "ishlayotgan" edi, biroq qatorlar soni 240 mingdan 690 mingga ko'tarildi. Dars: har doim birlashtirish/QO'SHILGAN so'ng qatorlar sonini tekshiring.
2-holat - O'rnatish funktsiyasi. U stajyorga AI df.groupby('x').summarize() ni taklif qildi; Pandalarda bunday usul yo'q (.agg() mavjud). Kod ishlamadi, stajyor 20 daqiqaga yo'qoldi. Dars: hujjatdan siz tanimaydigan funksiyani tekshiring; AI usullarni yaratishi mumkin.
3-holat - Hosildorlikning pasayishi. Bitta kod har bir satr uchun arizada ma'lumotlar bazasini so'raydi; U 5000 liniyada ishladi, 4 million liniyada 9 soat davom etdi va to'xtadi. AI vektorlashtirilgan (to'plamli) yechimni taklif qilganda, vaqt 40 soniyagacha qisqartirildi. Dars: kichik ma'lumotlarda ishlaydigan kod katta ma'lumotlarda ishdan chiqishi mumkin; Samaradorlikni hisobga oling.
To'rt nusxa ko'chirish shablonlari
1) SQL-ni sxema bilan so'rash:
Sizning rolingiz: SQL yordamchisi (PostgreSQL). Jadvallar:- buyurtmalar (id, mijoz_id, sana vaqt tamg'asi, miqdor)- mijozlar(identifikatori, shahar matni)Vazifa: aylanmalar bo'yicha kamayish tartibida saralangan 2024 yilda shahar bo'yicha jami aylanma va buyurtmalar sonini oling. NULL shaharlarni qanday boshqarishingizni tushuntiring. Men so'rovni avval LIMIT bilan sinab ko'raman; YANGILASH/O'CHIRISh avlod.
2) nazorat punkti bilan pandalar jarayoni:
Menda DataFrames df (buyurtmalar) va df_customers (mijozlar) bor. Har bir shahar uchun o'rtacha miqdorni hisoblang. MUHIM: birlashtirishdan oldin va keyin qatorlar sonini chop eting, shunda takrorlanish bor yoki yoʻqligini koʻraman. Qaysi ustunni birlashtirganingizni va nima uchun ichki/chapni tanlaganingizni tushuntiring.
3) Kodni tushuntirish va tekshirish:
Quyidagi pandalar kodini satr bo'yicha tushuntiring: har bir satr nima qiladi, qanday taxminlar qiladi, qanday hollarda noto'g'ri natijalar berishi mumkin? Men fudge funksiyasidan foydalansam, menga xabar bering. Kod: [qo'yish]
4) disk raskadrovka:
Ushbu kod bu xatoni beradi. To'liq xato xabari: [qo'yish]. Kod: [qo'yish]. Xatoning ROOT sababini tushuntiring va uni tuzating. Ogohlantirishni o'chirish orqali emas, balki muammoni aslida hal qilish orqali uni tuzating. Shuningdek, tuzatish chiqishni o'zgartirganligini ham ko'rsating.
Zaif taklif / Kuchli taklif
Zaif taklif:
Menga har bir shahar bo'yicha sotishni ko'rsatadigan so'rov yozing.
Jadval nomlari, ustunlar, ma'lumotlar bazasi turi, NULL harakati noaniq. AI keng tarqalgan bo'lib, u sizning jadvalingizga mos kelmaydigan so'rovni keltirib chiqarishi mumkin.
Kuchli so'rov:
Sizning rolingiz: SQL yordamchisi (MySQL 8). Jadval: savdolar (id, shahar varchari, o'nlik miqdori, sana sanasi). Vazifa: 2024 yil uchun umumiy va o'rtacha miqdorni, shahar bo'yicha buyurtmalar sonini oling; Umumiy miqdori bo'yicha kamayuvchi saralash; Faqat 100 dan ortiq buyurtmaga ega shaharlarni ko'rsating (HAVING). NULL shaharni istisno qiladi. So'rovni tushuntiring; Men LIMIT bilan sinab ko'raman.
Bu erda ma'lumotlar bazasi, sxema, filtr, tartiblash va NULL qoidasi aniq.
Umumiy xatolar
- Kodni o'qimasdan ishga tushirish. Ishchi kod to'g'ri emas; Noto'g'ri ustunni boshqaradigan kod ham xatosiz ishlaydi.
- Birlashtirish/JOINdan keyin qatorlar soni tekshirilmaydi. Noto'g'ri kalit qatorlarni jimgina takrorlaydi va jami ko'paytiradi.
- O'rnatish funktsiyasi tekshirilmaydi. AI mavjud bo'lmagan usullarni taklif qilishi mumkin; Hujjatdan uni tanimasligingizni tasdiqlang.
- Samaradorlik haqida o'ylamaslik. millionlab satrlarda kichik ma'lumotlarning ishdan chiqishida ishlaydigan qo'llash/loop; vektorlashtirish.
- To'g'ridan-to'g'ri ishlab chiqarish ma'lumotlar bazasida ishga tushiring. Ayniqsa, WHERE yoki sinovsiz UPDATE/DELETE-ni ishga tushirish halokatli.
Maslahat: AIdan olgan har bir kod boʻlagiga “tasdiqlash chizigʻi”ni qoʻshishga odatlaning: ishlov berishdan oldingi va keyingi ishlov berish qatorlari, bir nechta namunali qatorlar va qoʻlda kritik jami. Ushbu uchta tekshiruv eng jim mantiqiy xatolarni aniqlaydi.
Xulosa
AI - bu SQL va pandas kodlarini tezda ishlab chiqaradigan kuchli hamkor, ammo bu ko'r vakolat emas. Unga sxema va maqsadni aniq bering; U ishlab chiqaradigan kodni o'zingiz yozgandek o'qing; Birlashtirish/JOINdan keyin qatorlar sonini, moslash funktsiyalarini va o'tkazish qobiliyatini tekshiring; Uni ishlab chiqarish bazasida sinab ko'rmasdan ishga tushirmang. Nosozliklarni tuzatishda muammoni o'chirishga emas, balki uni hal qilishga intiling. Ishlaydigan kod to'g'ri kod emas; Faqat siz aniqlikka kafolat bera olasiz.
Ilova vazifasi
Tahlil savolini tanlang (masalan, "har bir kanal uchun oylik aylanma") va SQL va pandalar bilan AIdan kod so'rang. Ikkala kodni satr bo'yicha o'qing, birlashma/Qo'shilishdan keyin qatorlar sonini tekshiring va kamida bitta muhim summani qo'lda tekshiring. Ikki kod bir xil natija beradimi yoki yo'qligini solishtiring; Agar boshqacha bo'lsa, sababini bilib oling.
nazorat ro'yxati
- [ ] Men AIga jadval/sxema va maqsadni aniq berdimmi?
- [ ] U ishlab chiqarilgan kodni satr satr o'qib chiqdimmi va tushundimmi?
- [ ] Birlashtirish/JOINdan keyin qatorlar sonini tekshirdimmi?
- [ ] Hujjatlardan tanimagan funksiyalarni tekshirdimmi?
- [ ] Kodni avval ishlab chiqarish muhitida emas, balki xavfsiz/kichik ma'lumotlarda sinab ko'rdimmi?