Jadual Kandungan
1 Tidak menggunakan persekitaran maya
2. Penggunaan Terlalu Banyak Buku Nota Jupyter
3. Gunakan laluan mutlak dan bukannya relatif
4. Tidak mengendalikan amaran
5. Pemahaman senarai tidak digunakan (jarang digunakan)
6. Jangan gunakan anotasi jenis
7. Kod Panda tidak diseragamkan
8 Kegagalan untuk mematuhi konvensyen PEP
9. Anda tidak menggunakan alat bantuan pengekodan
Rumah pembangunan bahagian belakang Tutorial Python Sembilan kesilapan biasa yang dilakukan saintis data apabila menggunakan Python

Sembilan kesilapan biasa yang dilakukan saintis data apabila menggunakan Python

Apr 11, 2023 pm 09:07 PM
python pengekodan kejuruteraan perisian

Amalan terbaik dipelajari daripada kesilapan, jadi di sini kami meringkaskan beberapa kesilapan paling biasa yang kami hadapi dan menyediakan kaedah, idea dan sumber tentang cara terbaik untuk menyelesaikannya.

Sembilan kesilapan biasa yang dilakukan saintis data apabila menggunakan Python

1 Tidak menggunakan persekitaran maya

Ini bukan isu pengekodan sendiri, tetapi saya masih fikir ia adalah sangat baik untuk mengasingkan persekitaran untuk setiap jenis amalan projek.

Mengapa menggunakan persekitaran khusus untuk setiap projek?

Sebab pertama ialah masalah pengurusan pakej Python sendiri. Kami mahu meminimumkan konflik antara pakej dan versi.

Sebab lain ialah kod dan kebergantungan kami boleh digunakan dengan mudah ke mana-mana lokasi

Menggunakan persekitaran maya boleh bermula dari Anaconda atau Pipenv. Jika anda ingin pergi lebih dalam maka Docker ialah pilihan pertama.

2. Penggunaan Terlalu Banyak Buku Nota Jupyter

Buku nota bagus untuk tujuan pendidikan dan melakukan beberapa kerja analisis yang cepat dan kompleks, tetapi ia tidak berfungsi sebagai IDE yang baik.

IDE yang baik ialah senjata sebenar apabila ia melibatkan tugas sains data dan boleh meningkatkan kecekapan kerja anda dengan banyak.

Buku nota bagus untuk melakukan percubaan dan memudahkan untuk menunjukkan hasilnya kepada orang lain. Tetapi ia terdedah kepada ralat, dan apabila ia datang untuk melaksanakan projek jangka panjang, kolaboratif dan boleh digunakan, anda lebih baik menggunakan IDE seperti VScode, Pycharm, Spyder, dll.

3. Gunakan laluan mutlak dan bukannya relatif

Masalah terbesar dengan laluan mutlak ialah ia tidak boleh digunakan dengan mudah Cara utama untuk menyelesaikan masalah ini ialah menetapkan direktori kerja kepada projek direktori akar dan jangan Projek mengandungi fail di luar direktori projek dan menggunakan laluan relatif untuk semua laluan dalam kod.

import pandas as pd
 import numpy as np
 import os
 #### 错误的方式 #####
 excel_path1 = "C:\Users\abdelilah\Desktop\mysheet1.xlsx"
 excel_path2 = "C:\Users\abdelilah\Desktop\mysheet2.xlsx"
 mydf1 = pd.read_excel(excel_path1)
 mydf2 = pd.read_excel(excel_path2)
 
 #### 正确的方式 ####
 DATA_DIR = "data"
 #将要读取的文件复制到data目录
 crime06_filename = "CrimeOneYearofData_2006.xlsx"
 crime07_filename = "CrimeOneYearofData_2007.xlsx"
 crime06_df = pd.read_excel(os.path.join(DATA_DIR, crime06_filename))
 crime07_df = pd.read_excel(os.path.join(DATA_DIR, crime07_filename))
Salin selepas log masuk

4. Tidak mengendalikan amaran

Apabila kod kami dapat dijalankan tetapi menghasilkan mesej amaran yang pelik, kami gembira akhirnya mendapatkan kod tersebut untuk dijalankan dan menerima output yang bermakna. Tetapi adakah kita perlu menangani amaran ini?

Pertama sekali, amaran bukanlah ralat itu sendiri, tetapi ia adalah peringatan tentang kemungkinan ralat atau masalah. Amaran muncul apabila sesuatu dalam kod anda berjaya berfungsi tetapi mungkin tidak seperti yang dimaksudkan.

Amaran yang paling biasa saya hadapi ialah "SettingwithCopyWarning" dan "DeprecationWarning" Panda.

Sebab terbesar SettingwithCopyWarning ialah amaran yang berlaku apabila Pandas mengesan tugasan berantai (Tugasan Berantai Kita harus mengelak daripada memberikan nilai kepada hasil indeks berantai, kerana operasi ini mungkin melaporkan amaran atau tidak). .

DeprecationWarning biasanya menunjukkan bahawa Panda telah menamatkan beberapa fungsi dan kod anda akan rosak apabila menggunakan versi yang lebih baru.

Nasihat di sini adalah untuk tidak menangani semua amaran, tetapi anda mesti memahami sebab untuk semua amaran, mengetahui amaran yang boleh diabaikan dalam projek tertentu, dan kejadian amaran tersebut akan menjejaskan keputusannya mempunyai kesan dan harus dielakkan.

5. Pemahaman senarai tidak digunakan (jarang digunakan)

Pemahaman senarai ialah ciri ular sawa yang sangat berkuasa. Banyak untuk gelung boleh digantikan dengan pemahaman senarai yang lebih mudah dibaca, lebih Pythonic dan lebih pantas.

Anda boleh melihat di bawah contoh kod yang direka untuk membaca fail CSV dalam direktori. Seperti yang anda lihat, Tim mudah dikekalkan apabila menggunakan pemahaman senarai.

import pandas as pd
 import os
 
 DATA_PATH = "data"
 filename_list = os.listdir(DATA_PATH)
 
 #### 不好的方法 #####
 csv_list = []
 for fileaname in filename_list:
csv_list.append(pd.read_csv(os.path.join(DATA_PATH, filename)))
 
 #### 建议 ####
 csv_list = [pd.read_csv(os.path.join(DATA_PATH, filename)) for filename in filename_list]
 list comprehensions
 csv_list = [pd.read_csv(os.path.join(DATA_PATH,
filename)) for filename in filename_list if
filename.endswith(".csv")]
Salin selepas log masuk

6. Jangan gunakan anotasi jenis

Anotasi jenis (atau pembayang taip) ialah cara untuk menetapkan jenis kepada pembolehubah. Apabila IDE menggesa IntelliSense, ia boleh memberikan kami jenis pembolehubah/parameter penunjuk. Ini bukan sahaja dapat meningkatkan kelajuan pembangunan kami, tetapi juga banyak membantu kami dalam membaca kod

def mystery_combine(a, b, times):
return (a + b) * times
Salin selepas log masuk

Jika ditulis seperti ini, kami tidak tahu jenis a, b dan masa langsung

def mystery_combine(a: str, b: str, times: int) -> str:
return (a + b) * times
Salin selepas log masuk

Tetapi dengan penambahan anotasi jenis, kita tahu bahawa a dan b ialah rentetan dan masa ialah integer

Perlu diingatkan bahawa python memperkenalkan anotasi jenis dalam versi 3.5, dan python tidak akan dilaksanakan Apabila menyemak anotasi jenis, ia hanya menyediakan alat semakan jenis statik yang mudah untuk IDE melakukan semakan jenis statik pada bahasa dinamik untuk mengelakkan beberapa kemungkinan ralat.

7. Kod Panda tidak diseragamkan

Perantaian kaedah ialah ciri hebat panda, tetapi jika terdapat banyak operasi yang disertakan dalam satu baris, kod itu mungkin tidak boleh dibaca.

Helah untuk menjadikan pendekatan ini lebih mudah ialah meletakkan ungkapan dalam kurungan, jadi anda boleh menggunakan satu baris untuk setiap komponen ungkapan.

var_list = ["clicks", "time_spent"]
 var_list_Q = [varname + "_Q" for varname in var_list]
 
 #不可读的方法
 df_Q = df.groupby("id").rolling(window=3, min_periods=1, on="yearmonth[var_list].mean().reset_index().rename(columns=dict(zip(var_list, var_list_Q)))
 
 #可读性强的方法
 df_Q = (
df
.groupby("id")
.rolling(window=3, min_periods=1, on="yearmonth")[var_list]
.mean()
.reset_index()
.rename(columns=dict(zip(var_list, var_list_Q))))
Salin selepas log masuk

8 Kegagalan untuk mematuhi konvensyen PEP

Apabila anda mula-mula memulakan pengaturcaraan dalam Python, kod itu mungkin kasar dan tidak boleh dibaca Ini kerana kami tidak mempunyai peraturan reka bentuk kami sendiri untuk diikuti. Kod saya kelihatan lebih baik. Memang susah dan susah untuk mereka sendiri peraturan sedemikian dan memerlukan banyak latihan Nasib baik, Python telah menetapkan peraturan secara rasmi: PEP, yang merupakan panduan gaya rasmi Python.

Walaupun peraturan PEP banyak dan menyusahkan, kita boleh mengabaikan beberapa peraturan PEP, tetapi kita boleh menggunakannya dalam 90% kod.

9. Anda tidak menggunakan alat bantuan pengekodan

Adakah anda mahu meningkatkan produktiviti anda dengan ketara dalam pengekodan? Mulakan dengan Coding Assist, yang membantu dengan pelengkapan automatik yang bijak, membuka dokumen dan memberikan cadangan untuk menambah baik kod anda.

pylance, Kite, tabnine, dan copilot semuanya adalah pilihan yang sangat baik.

Atas ialah kandungan terperinci Sembilan kesilapan biasa yang dilakukan saintis data apabila menggunakan Python. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

PHP dan Python: Contoh dan perbandingan kod PHP dan Python: Contoh dan perbandingan kod Apr 15, 2025 am 12:07 AM

PHP dan Python mempunyai kelebihan dan kekurangan mereka sendiri, dan pilihannya bergantung kepada keperluan projek dan keutamaan peribadi. 1.PHP sesuai untuk pembangunan pesat dan penyelenggaraan aplikasi web berskala besar. 2. Python menguasai bidang sains data dan pembelajaran mesin.

Python vs JavaScript: Komuniti, Perpustakaan, dan Sumber Python vs JavaScript: Komuniti, Perpustakaan, dan Sumber Apr 15, 2025 am 12:16 AM

Python dan JavaScript mempunyai kelebihan dan kekurangan mereka sendiri dari segi komuniti, perpustakaan dan sumber. 1) Komuniti Python mesra dan sesuai untuk pemula, tetapi sumber pembangunan depan tidak kaya dengan JavaScript. 2) Python berkuasa dalam bidang sains data dan perpustakaan pembelajaran mesin, sementara JavaScript lebih baik dalam perpustakaan pembangunan dan kerangka pembangunan depan. 3) Kedua -duanya mempunyai sumber pembelajaran yang kaya, tetapi Python sesuai untuk memulakan dengan dokumen rasmi, sementara JavaScript lebih baik dengan MDNWebDocs. Pilihan harus berdasarkan keperluan projek dan kepentingan peribadi.

Cara menjalankan program di terminal vscode Cara menjalankan program di terminal vscode Apr 15, 2025 pm 06:42 PM

Dalam kod VS, anda boleh menjalankan program di terminal melalui langkah -langkah berikut: Sediakan kod dan buka terminal bersepadu untuk memastikan bahawa direktori kod selaras dengan direktori kerja terminal. Pilih arahan Run mengikut bahasa pengaturcaraan (seperti python python your_file_name.py) untuk memeriksa sama ada ia berjalan dengan jayanya dan menyelesaikan kesilapan. Gunakan debugger untuk meningkatkan kecekapan debug.

Bolehkah kod studio visual digunakan dalam python Bolehkah kod studio visual digunakan dalam python Apr 15, 2025 pm 08:18 PM

Kod VS boleh digunakan untuk menulis Python dan menyediakan banyak ciri yang menjadikannya alat yang ideal untuk membangunkan aplikasi python. Ia membolehkan pengguna untuk: memasang sambungan python untuk mendapatkan fungsi seperti penyempurnaan kod, penonjolan sintaks, dan debugging. Gunakan debugger untuk mengesan kod langkah demi langkah, cari dan selesaikan kesilapan. Mengintegrasikan Git untuk Kawalan Versi. Gunakan alat pemformatan kod untuk mengekalkan konsistensi kod. Gunakan alat linting untuk melihat masalah yang berpotensi lebih awal.

Penjelasan terperinci mengenai Prinsip Docker Penjelasan terperinci mengenai Prinsip Docker Apr 14, 2025 pm 11:57 PM

Docker menggunakan ciri -ciri kernel Linux untuk menyediakan persekitaran berjalan yang cekap dan terpencil. Prinsip kerjanya adalah seperti berikut: 1. Cermin digunakan sebagai templat baca sahaja, yang mengandungi semua yang anda perlukan untuk menjalankan aplikasi; 2. Sistem Fail Kesatuan (Unionfs) menyusun pelbagai sistem fail, hanya menyimpan perbezaan, menjimatkan ruang dan mempercepatkan; 3. Daemon menguruskan cermin dan bekas, dan pelanggan menggunakannya untuk interaksi; 4. Ruang nama dan cgroups melaksanakan pengasingan kontena dan batasan sumber; 5. Pelbagai mod rangkaian menyokong interkoneksi kontena. Hanya dengan memahami konsep -konsep teras ini, anda boleh menggunakan Docker dengan lebih baik.

Adakah sambungan vscode berniat jahat? Adakah sambungan vscode berniat jahat? Apr 15, 2025 pm 07:57 PM

Sambungan kod VS menimbulkan risiko yang berniat jahat, seperti menyembunyikan kod jahat, mengeksploitasi kelemahan, dan melancap sebagai sambungan yang sah. Kaedah untuk mengenal pasti sambungan yang berniat jahat termasuk: memeriksa penerbit, membaca komen, memeriksa kod, dan memasang dengan berhati -hati. Langkah -langkah keselamatan juga termasuk: kesedaran keselamatan, tabiat yang baik, kemas kini tetap dan perisian antivirus.

Boleh kod vs dijalankan di Windows 8 Boleh kod vs dijalankan di Windows 8 Apr 15, 2025 pm 07:24 PM

Kod VS boleh dijalankan pada Windows 8, tetapi pengalaman mungkin tidak hebat. Mula -mula pastikan sistem telah dikemas kini ke patch terkini, kemudian muat turun pakej pemasangan kod VS yang sepadan dengan seni bina sistem dan pasangnya seperti yang diminta. Selepas pemasangan, sedar bahawa beberapa sambungan mungkin tidak sesuai dengan Windows 8 dan perlu mencari sambungan alternatif atau menggunakan sistem Windows yang lebih baru dalam mesin maya. Pasang sambungan yang diperlukan untuk memeriksa sama ada ia berfungsi dengan betul. Walaupun kod VS boleh dilaksanakan pada Windows 8, disyorkan untuk menaik taraf ke sistem Windows yang lebih baru untuk pengalaman dan keselamatan pembangunan yang lebih baik.

Python: Automasi, skrip, dan pengurusan tugas Python: Automasi, skrip, dan pengurusan tugas Apr 16, 2025 am 12:14 AM

Python cemerlang dalam automasi, skrip, dan pengurusan tugas. 1) Automasi: Sandaran fail direalisasikan melalui perpustakaan standard seperti OS dan Shutil. 2) Penulisan Skrip: Gunakan Perpustakaan Psutil untuk memantau sumber sistem. 3) Pengurusan Tugas: Gunakan perpustakaan jadual untuk menjadualkan tugas. Kemudahan penggunaan Python dan sokongan perpustakaan yang kaya menjadikannya alat pilihan di kawasan ini.

See all articles