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

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

Linda Hamilton
Linda Hamiltonasal
2024-12-13 03:45:10146semak imbas

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)]

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:

  • 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)])

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!

Kenyataan:
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