Rumah > pembangunan bahagian belakang > Tutorial Python > 5 perangkap Python biasa untuk penyediaan data

5 perangkap Python biasa untuk penyediaan data

Joseph Gordon-Levitt
Lepaskan: 2024-10-29 10:06:36
ke hadapan
593 orang telah melayarinya

Python ialah bahasa yang berkuasa untuk penyediaan data, tetapi terdapat beberapa kesilapan biasa atau perangkap yang mungkin dihadapi oleh orang ramai. Dalam catatan blog ini, saya akan bincangkan lima isu paling biasa yang dihadapi oleh orang ramai apabila menggunakan Python untuk penyediaan data.

5 perangkap Python biasa untuk penyediaan data

1. Menganggap nilai yang tiada (`NaN`) sebagai palsu.

Salah, Tiada dan 0 (daripada sebarang jenis angka) semuanya dinilai kepada Salah.

Set objek dan nilai ini dikenali sebagai “palsu” dan akan menilai kepada palsu. NaN atau nilai yang hilang tidak palsu dan oleh itu tidak akan menilai palsu. Ini boleh menyebabkan banyak kekeliruan dan tingkah laku yang tidak dijangka oleh banyak operasi.

2. Percubaan untuk membandingkan nilai yang hilang

Nampaknya cukup mudah bahawa NaN == NaN akan kembali benar. Kedua-dua nilai "kelihatan" sama.

Walau bagaimanapun, kerana mustahil untuk mengetahui sama ada dua nilai yang hilang adalah sama, operasi ini akan sentiasa kembali palsu.

3. Berfikir bahawa all() hanya kembali benar apabila semua elemen adalah benar.

Kaedah all() kembali benar jika semua elemen lelaran adalah benar (atau jika yang boleh diulang kosong). 

Jangan anggap ia sebagai “Kembali benar jika semua elemen boleh diulang adalah benar," tetapi sebaliknya "Kembalikan benar jika tiada palsu elemen dalam boleh lelar.”

Apabila lelang kosong, tidak boleh ada unsur palsu di dalamnya, bermakna semua([]) menilai kepada Benar.

4. Menukar kepada nilai bool

Panda mengikut konvensyen numpy untuk menimbulkan ralat apabila anda cuba tukar sesuatu kepada bool. Ini berlaku dalam jika atau semasa menggunakan operasi Boolean, dan, atau, atau tidak.

Tidak jelas keputusan yang sepatutnya. Patutkah ianya Benar kerana ia bukan sifar panjang? Palsu kerana terdapat nilai False?

Ia tidak jelas, jadi sebaliknya, Pandas menimbulkan ValueError

ValueError: Nilai kebenaran Siri adalah samar-samar. 

Gunakan a.kosong, a.bool() a.item(),a.any() atau a.all().

5. Memahami keputusan operasi isin().

Operasi isin() mengembalikan siri Boolean yang menunjukkan sama ada setiap elemen dalam Siri betul-betul terkandung dalam yang diluluskan jujukan nilai.

 s = pd.Series(['dog', 'cat', 'fish'])
>>> s.isin(['bird'])
0    False
1    False
2    False
dtype: bool
Salin selepas log masuk

Perhatikan bahawa 'burung' tidak wujud dalam siri ini.

>>> s.isin(['bird', 'cat'])
0    False
1     True
2    False
dtype: bool
Salin selepas log masuk

Perhatikan 'kucing' wujud dalam nilai ke-2 siri.

Ketahui lebih lanjut tentang menggunakan Python untuk penyediaan data

Python ialah bahasa yang berkuasa, tetapi kekeliruan boleh timbul nilai hilang dan boolean. Perlu diingat bahawa nilai yang hilang ialah dianggap palsu dan tidak boleh dibandingkan. 

Apabila menggunakan kaedah all(), ingat bahawa ia kembali benar apabila tiada nilai palsu dalam lelaran.  Jika semua nilai adalah hilang, seperti dalam kes tatasusunan kosong, all() juga mengembalikan benar kerana nilai yang hilang tidak dianggap palsu. 

Jika anda menerima ValueError semasa cuba menukar kepada nilai bool, pastikan anda mengambil nasihat yang berguna dan gunakan salah satu kaedah yang dicadangkan.

Atas ialah kandungan terperinci 5 perangkap Python biasa untuk penyediaan data. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:pluralsight.com
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan