Keuntungan:
- Kemampuan untuk mengambil kode SQL dan panda yang kuat serta membaca dan memverifikasinya baris demi baris dengan memberikan skema dan tujuan yang jelas pada kecerdasan buatan
- Kemampuan untuk menangkap kesalahan diam seperti jumlah baris, fungsi pemasangan, dan throughput setelah penggabungan/GABUNG
- Kemampuan untuk memecahkan masalah dalam debug tanpa membungkamnya dan menghindari menjalankan kode tanpa mengujinya di lingkungan produksi
Ilmu data memiliki dua bahasa utama: SQL (Bahasa Kueri Terstruktur — bahasa untuk menanyakan data dari database) dan Python (khususnya, pustaka pandas — alat standar untuk memanipulasi tabel secara terprogram). Dalam unit ini, kita akan belajar menggunakan AI sebagai mitra kode: mendapatkan kode SQL dan panda yang solid dengan pertanyaan yang tepat, membaca dan memvalidasi kode tersebut, melakukan debug, dan tidak pernah menjalankannya secara membabi buta. AI menulis kode berulang dalam hitungan detik, bukan menit; Namun tugas Anda adalah memastikan bahwa kode yang dihasilkan memproses kolom yang benar dengan logika yang benar. Kode yang berfungsi tidak berarti kode yang benar.
Mengapa memproduksi kode dengan AI itu ampuh namun berisiko
AI memberikan tiga manfaat besar dalam pembuatan kode: kecepatan (menulis operasi grup per pivot 30 baris dalam hitungan detik), pengingat (mengingatkan Anda tentang fungsi panda yang Anda lupa), dan pengajaran (menjelaskan kode baris demi baris). Namun hal ini membawa tiga risiko: kesalahan logika senyap (kode yang menjumlahkan kolom yang salah berjalan tanpa kesalahan), fungsi yang dipasang (menyarankan metode yang tidak ada), dan perangkap hasil (kode yang bekerja pada data kecil namun mogok pada 10 juta baris). Jadi aturan emasnya: Baca kode AI seolah-olah Anda menulisnya sendiri. Jangan menjalankan kalimat yang tidak Anda mengerti.
SQL: memproses data pada sumbernya
SQL memungkinkan Anda mengambil data dari database dan memprosesnya di sana; Anda dapat meringkas jutaan baris tanpa memasukkannya ke dalam Python. Blok penyusun dasar: SELECT (kolom mana), WHERE (baris mana), GROUP BY (mengelompokkan dan meringkas), JOIN (menggabungkan tabel), HAVING (filter pasca-grup). AI sangat membantu dalam menulis fungsi GABUNG dan jendela yang kompleks, tetapi pastikan untuk memeriksa dua hal: apakah GABUNG melalui kunci yang benar (kunci yang salah menduplikasi baris) dan apakah logika filter benar (terutama perilaku NULL dan rentang tanggal).
Perhatian: Jangan menjalankan kueri SQL yang dihasilkan AI secara langsung terhadap database produksi. Uji dengan salinan kecil atau LIMIT terlebih dahulu. Jangan pernah menjalankan kueri UPDATE/DELETE tanpa memvalidasi kondisi WHERE; WHERE yang salah dapat menghapus seluruh tabel.
Python/panda: analisis fleksibel
pandas adalah cara standar untuk memanipulasi tabel (DataFrame) dengan Python. Penggunaan AI yang paling efisien adalah dengan memberikan skema dan tujuan yang jelas. Operasi yang paling umum digunakan: filter, groupby, merge, pivot_table, apply. AI menulis ini dengan cepat; Yang ingin Anda periksa adalah logikanya: apakah pengelompokan di kolom yang benar, apakah penggabungan mengubah jumlah baris secara tidak terduga (selalu periksa jumlah baris setelah penggabungan), apakah operasi rantai mengubah yang asli.
transaksi
SQL
panda
pos pemeriksaan
Penyaringan
DIMANA
df[df.x > 5]
Perilaku NULL/NaN
pengelompokan
KELOMPOK OLEH
df.groupby()
Apakah itu kolom kanan?
bergabung
BERGABUNG
df.gabung()
Perubahan jumlah baris
Ringkasan
AVG(), JUMLAH()
.berarti(), .jumlah()
Kolom mana yang dikumpulkan
Urutkan berdasarkan
PESAN OLEH
.sort_values()
Arah (naik/turun)
deduplikasi
BERBEDA
.drop_duplikat()
Di kolom mana?
Proses debug: dengan AI
Ketika kode gagal, AI adalah mitra debugging yang sangat baik. Berikan pesan kesalahan lengkap dan cuplikan kode yang relevan. Namun waspadalah terhadap dua jebakan. Pertama, AI mungkin menyarankan solusi yang “membungkam” kesalahan (misalnya, menyembunyikan peringatan) — ini tidak memperbaiki kesalahan, melainkan menyembunyikannya. Kedua, AI terkadang secara diam-diam mengubah perilaku lain saat “memecahkan” suatu masalah. Aturan: pahami perbaikannya, selesaikan bukan mute, dan verifikasi bahwa output masih benar setelah perbaikan.
Ingin kode yang dapat ditafsirkan dan dipelihara
Saat membeli kode dari AI, mintalah kode yang dapat dibaca dan dipelihara, bukan hanya kode yang “berfungsi”. Saat Anda atau kolega membuka kode tersebut beberapa bulan kemudian, kode tersebut seharusnya dapat memahami fungsinya. Untuk melakukan ini, biasakan AI menyertakan tiga hal: nama variabel yang bermakna (orders_temiz, bukan df2), baris komentar pendek pada langkah-langkah kritis (menjelaskan alasannya, bukan apa yang dilakukan), dan konstanta bernama alih-alih angka ajaib (ACCEPT_ESIGI = 0,85 bukannya 0,85 yang terkubur dalam kode). Hindari juga rantai satu baris yang panjang (menghubungkan lima tindakan dalam satu baris); ini membuat proses debug menjadi sulit. Secara default, AI sering kali menghasilkan kode yang ringkas dan “cerdas”; Jika Anda dengan jelas mengatakan "tulis dapat dibaca, ditafsirkan, dipelihara", Anda akan mendapatkan hasil yang jauh lebih mudah dipelihara. Ini juga merupakan dasar dari reproduktifitas (Unit 10): kode yang tidak dipahami adalah kode yang tidak dapat dijalankan kembali dengan aman.
tiga kasus mini
Kasus 1 - GABUNG replikasi. Seorang analis menggabungkan pesanan dengan tabel produk dan menemukan total omset menjadi 3 kali lebih tinggi. Penyebab: setiap produk memiliki beberapa baris (warna berbeda) di tabel produk; GABUNG menggandakan setiap pesanan. Kode AI "berfungsi", tetapi jumlah barisnya melonjak dari 240 ribu menjadi 690 ribu. Pelajaran: selalu periksa jumlah baris setelah penggabungan/GABUNG.
Kasus 2 — Fungsi pemasangan. Dia menyarankan AI df.groupby('x').summarize() kepada pekerja magang; Tidak ada metode seperti itu di panda (ada .agg()). Kode tidak berfungsi, magang hilang selama 20 menit. Pelajaran: verifikasi fungsi yang tidak Anda kenali dari dokumen; AI dapat membuat metode.
Kasus 3 — Keruntuhan hasil. Satu kode menanyakan database yang diterapkan untuk setiap baris; Itu berjalan pada 5.000 jalur, memakan waktu 9 jam pada 4 juta jalur, dan berhenti. Ketika AI menyarankan solusi vektorisasi (batch), waktunya dikurangi menjadi 40 detik. Pelajaran: kode yang berfungsi pada data kecil mungkin crash pada data besar; Pertimbangkan efisiensi.
Empat templat yang dapat disalin
1) Meminta SQL dengan skema:
Peran Anda: asisten SQL (PostgreSQL). Tabel:- pesanan(id, id_pelanggan, stempel waktu tanggal, jumlah numerik)- pelanggan(id, teks kota)Tugas: Mendapatkan total omzet dan jumlah pesanan per kota pada tahun 2024, diurutkan berdasarkan omset dalam urutan menurun. Jelaskan bagaimana Anda menangani kota NULL. Saya akan menguji kueri dengan LIMIT terlebih dahulu; UPDATE/HAPUS generasi.
2) proses panda dengan pos pemeriksaan:
Saya memiliki DataFrames df (pesanan) dan df_customers (pelanggan). Hitung jumlah rata-rata per kota. PENTING: cetak jumlah baris sebelum dan sesudah penggabungan sehingga saya bisa melihat apakah ada duplikasi. Jelaskan di kolom mana Anda menggabungkan dan mengapa Anda memilih dalam/kiri.
3) Penjelasan dan verifikasi kode:
Jelaskan baris demi baris kode panda berikut: apa fungsi setiap baris, asumsi apa yang dibuat, dan dalam hal apa kode tersebut dapat memberikan hasil yang salah? Beri tahu saya jika saya menggunakan fungsi fudge. Kode: [tempel]
4) Men-debug:
Kode ini memberikan kesalahan ini. Pesan kesalahan lengkap: [tempel]. Kode: [tempel]. Jelaskan akar penyebab kesalahan dan perbaiki. Perbaiki dengan benar-benar menyelesaikan masalah, bukan dengan membungkam peringatan. Tunjukkan juga apakah perbaikan tersebut mengubah keluaran.
Perintah lemah / Perintah kuat
Perintah yang lemah:
Tulis kueri yang memberi saya penjualan per kota.
Nama tabel, kolom, tipe database, perilaku NULL tidak jelas. AI-nya biasa saja, mungkin akan menghasilkan query yang tidak sesuai dengan tabel Anda.
Perintah yang kuat:
Peran Anda: asisten SQL (MySQL 8). Tabel: penjualan (id, varchar kota, jumlah desimal, tanggal tanggal). Tugas: Mendapatkan jumlah total dan rata-rata, jumlah pesanan per kota untuk tahun 2024; Urutkan dikurangi berdasarkan jumlah total; Hanya tampilkan kota dengan lebih dari 100 pesanan (HAVING).NULL kecualikan kota. Jelaskan pertanyaannya; Saya akan menguji dengan LIMIT.
Di sini database, skema, filter, pengurutan, dan aturan NULL terlihat jelas.
Kesalahan umum
- Menjalankan kode tanpa membacanya. Kode yang berfungsi bukanlah kode yang benar; Kode yang memanipulasi kolom yang salah juga berjalan tanpa kesalahan.
- Tidak memeriksa jumlah baris setelah penggabungan/GABUNG. Kunci yang salah secara diam-diam menduplikasi baris dan menambah total.
- Tidak memverifikasi fungsi pemasangan. AI mungkin menyarankan metode yang tidak ada; Konfirmasikan dari dokumen bahwa Anda tidak mengenalinya.
- Tidak memikirkan efisiensi. apply/loop bekerja pada data kecil yang mogok di jutaan baris; membuat vektor.
- Jalankan langsung di database produksi. Terutama menjalankan UPDATE/DELETE tanpa WHERE atau pengujian adalah bencana.
Tip: Biasakan menambahkan "baris validasi" ke setiap bagian kode yang Anda terima dari AI: jumlah baris sebelum dan sesudah pemrosesan, beberapa baris sampel, dan total kritis secara manual. Ketiga pemeriksaan ini menangkap sebagian besar kesalahan logika senyap.
Singkatnya
AI adalah mitra yang kuat yang dengan cepat menghasilkan kode SQL dan pandas, tetapi AI bukanlah otoritas yang buta. Beri dia skema dan tujuannya dengan jelas; Baca kode yang dihasilkan seolah-olah Anda menulisnya sendiri; Periksa jumlah baris, fungsi pemasangan, dan throughput setelah penggabungan/GABUNG; Jangan menjalankannya tanpa mengujinya pada database produksi. Saat melakukan debug, bertujuan untuk menyelesaikan masalah, bukan membungkamnya. Kode yang berfungsi bukanlah kode yang benar; Hanya Anda yang dapat menjamin keakuratannya.
Tugas aplikasi
Pilih pertanyaan analisis (misalnya “omzet bulanan per saluran”) dan minta kode dari AI dengan SQL dan pandas. Baca kedua kode baris demi baris, periksa jumlah baris setelah penggabungan/GABUNG dan verifikasi secara manual setidaknya satu jumlah kritis. Bandingkan apakah kedua kode tersebut menghasilkan hasil yang sama; Jika berbeda, cari tahu alasannya.
daftar periksa
- [ ] Apakah saya sudah memberikan tabel/skema dan tujuannya dengan jelas kepada AI?
- [ ] Apakah saya membaca dan memahami kode yang dihasilkannya baris demi baris?
- [ ] Apakah saya memeriksa jumlah baris setelah penggabungan/GABUNG?
- [ ] Sudahkah saya memverifikasi fungsi yang tidak saya kenali dari dokumentasi?
- [ ] Sudahkah saya menguji kode pada data aman/kecil terlebih dahulu dan bukan di lingkungan produksi?