Rumah > pembangunan bahagian belakang > Tutorial Python > Pengindeksan Boolean Panda: Mengapa Menggunakan '&' Daripada 'dan'?

Pengindeksan Boolean Panda: Mengapa Menggunakan '&' Daripada 'dan'?

Linda Hamilton
Lepaskan: 2024-12-13 03:45:10
asal
156 orang telah melayarinya

Pandas Boolean Indexing: Why Use

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)]
Salin selepas log masuk

tetapi pernyataan berikut keluar dengan ralat:

a[(a['some_column']==some_number) and (a['some_other_column']==some_other_number)]
Salin selepas log masuk

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:

  • Semua elemennya adalah Benar
  • Mana-mana elemennya adalah Benar
  • Ia mempunyai panjang bukan sifar

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)])
Salin selepas log masuk

Output:

   x   y
0  1  10
Salin selepas log masuk

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!

sumber:php.cn
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