Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimanakah Rantaian Operator Pandas Dapat Meningkatkan Kecekapan Penapisan Baris?

Bagaimanakah Rantaian Operator Pandas Dapat Meningkatkan Kecekapan Penapisan Baris?

Susan Sarandon
Susan Sarandonasal
2024-11-03 13:51:31169semak imbas

How Can Pandas' Operator Chaining Enhance Row Filtering Efficiency?

Panda: Penapisan Baris Cekap Menggunakan Rantaian Operator

Salah satu faedah utama panda ialah keupayaan rantaian pengendalinya, yang membolehkan pelaksanaan lancar daripada pelbagai operasi. Walau bagaimanapun, kaedah tradisional untuk menapis baris, iaitu, menggunakan pengindeksan kurungan (cth., df[df['lajur'] == nilai]), memerlukan penugasan DataFrame kepada pembolehubah. Ini boleh menyusahkan dan boleh menyebabkan lebihan kod.

Syukurlah, terdapat cara yang lebih cekap untuk menjalankan operasi penapisan rantai menggunakan indeks boolean. Dengan menggunakan operator logik (&, |, ^), berbilang kriteria boleh dirantai bersama untuk mencapai penapisan baris terpilih.

df_filtered = df[(df.A == 1) & (df.D == 6)]

Dalam contoh ini, baris dengan nilai lajur 'A' bersamaan dengan 1 dan nilai lajur 'D' bersamaan 6 diekstrak.

Bagi pengguna yang lebih suka kaedah rantaian, adalah mungkin untuk melaksanakan kaedah topeng tersuai yang memudahkan penapisan baris. Dengan mentakrifkan kaedah dan memberikannya kepada kelas DataFrame, operasi penapis boleh dirantai dengan lancar selepas sebarang panggilan kaedah.

def mask(df, key, value):
    return df[df[key] == value]

pandas.DataFrame.mask = mask

df.mask('A', 1).mask('D', 6)

Kaedah topeng tersuai ini membolehkan operasi penapisan yang ringkas dan berantai, memberikan kecekapan yang dipertingkatkan dan kebolehbacaan kod .

Atas ialah kandungan terperinci Bagaimanakah Rantaian Operator Pandas Dapat Meningkatkan Kecekapan Penapisan Baris?. 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