Rumah >pembangunan bahagian belakang >Tutorial Python >Pengindeksan Boolean Panda: Mengapa Menggunakan '&' Daripada 'dan'?
Operator Logik untuk Pengindeksan Boolean dalam Panda
Apabila bekerja dengan pengindeksan Boolean dalam Pandas, adalah penting untuk memahami perbezaan antara pengendali logik " &" dan "dan".
Soalan: Mengapa pernyataan berikut berfungsi tanpa ralat:
a[(a['some_column']==some_number) & (a['some_other_column']==some_other_number)]
tetapi pernyataan berikut keluar dengan ralat:
a[(a['some_column']==some_number) and (a['some_other_column']==some_other_number)]
Jawapan:
Operator "dan" dalam Python secara tersirat menukar operannya kepada nilai Boolean. Walau bagaimanapun, apabila berurusan dengan tatasusunan NumPy (dan Siri Pandas, yang berdasarkan tatasusunan NumPy), penukaran ini boleh membawa kepada kekaburan.
Apabila menilai nilai kebenaran tatasusunan yang mengandungi berbilang elemen, tidak jelas sama ada ia sepatutnya dianggap Benar jika:
Untuk mengelakkan kekaburan ini, NumPy dan Pandas memerlukan penilaian Boolean yang jelas menggunakan "any()", "all( )", atau kaedah "empty()".
Dalam kes pengindeksan Boolean, kami tidak mahu Boolean penilaian tetapi lebih kepada operasi logik mengikut unsur. Di sinilah operator "&" memainkan peranan.
Operator "&" melakukan operasi logik AND mengikut elemen. Ia mengembalikan tatasusunan Boolean di mana setiap elemen adalah hasil daripada logik DAN elemen yang sepadan dalam tatasusunan input.
Contoh:
import pandas as pd a = pd.DataFrame({'x':[1,1],'y':[10,20]}) print(a[(a['x']==1) & (a['y']==10)])
Output:
x y 0 1 10
Dalam contoh ini, operator "&" digunakan untuk mencari baris di mana kedua-dua lajur "x" dan Lajur "y" memenuhi kriteria yang ditetapkan.
Atas ialah kandungan terperinci Pengindeksan Boolean Panda: Mengapa Menggunakan '&' Daripada 'dan'?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!