Pandas, perpustakaan Python yang popular untuk manipulasi data, menawarkan cara yang cekap untuk menapis DataFrames dan objek Siri. Apabila berbilang penapis perlu digunakan secara berturut-turut, adalah penting untuk mengoptimumkan proses untuk mengelakkan penyalinan data yang tidak diperlukan.
Kaedah tradisional menggunakan indeks semula() mengakibatkan pertindihan data dan tidak cekap untuk set data yang besar. Pengindeksan Boolean, ciri Pandas dan NumPy, menyediakan alternatif yang lebih pantas.
Pertimbangkan contoh berikut:
<code class="python">import pandas as pd df = pd.DataFrame({'col1': [0, 1, 2], 'col2': [10, 11, 12]}) def b(x, col, op, n): return op(x[col],n) def f(x, *b): return x[(np.logical_and(*b))] b1 = b(df, 'col1', ge, 1) b2 = b(df, 'col1', le, 1) filtered_df = f(df, b1, b2)</code>
Pendekatan ini menggunakan pengindeksan boolean untuk melaksanakan operasi penapisan dengan cekap. Fungsi b mencipta objek Siri Boolean, dan fungsi f menggabungkannya menggunakan operator logik NumPy. Hasilnya ialah DataFrame baharu dengan hanya baris yang memenuhi kriteria yang ditetapkan.
Dalam Pandas versi 0.13 dan ke atas, kaedah pertanyaan menyediakan alternatif kepada secara eksplisit menggabungkan Siri Boolean. Ia memanfaatkan NuMexr untuk penilaian yang cekap dan menawarkan sintaks yang lebih mudah:
<code class="python">filtered_df = df.query('col1 <= 1 & 1 <= col1')</code>
Teknik yang diterangkan untuk objek Siri boleh diperluaskan kepada DataFrames dengan mudah. Setiap penapis yang anda gunakan akan bertindak pada DataFrame asal, mengecilkan hasil secara berperingkat.
Dengan memanfaatkan pengindeksan boolean dan algoritma dioptimumkan Pandas, anda boleh menggunakan berbilang penapis dengan cekap pada struktur data anda tanpa menjejaskan prestasi.
Atas ialah kandungan terperinci Bagaimana untuk Menapis Struktur Data Panda dengan Cekap Menggunakan Pengindeksan Boolean?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!