Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimana untuk Menapis Pandas DataFrame atau Siri dengan Cekap dengan Pelbagai Keadaan?
Panda menyediakan beberapa kaedah untuk menapis data, termasuk indeks semula(), apply(), dan map() . Walau bagaimanapun, apabila menggunakan berbilang penapis, kecekapan menjadi kebimbangan.
Untuk penapisan yang dioptimumkan, pertimbangkan untuk menggunakan pengindeksan boolean. Kedua-dua Pandas dan Numpy menyokong pengindeksan boolean, yang beroperasi secara langsung pada tatasusunan data asas tanpa membuat salinan yang tidak diperlukan.
Berikut ialah contoh pengindeksan boolean:
<code class="python">df.loc[df['col1'] >= 1, 'col1']</code>
Ungkapan ini mengembalikan Siri Pandas yang mengandungi hanya baris yang nilai dalam lajur 'col1' lebih besar daripada atau sama dengan 1.
Untuk menggunakan berbilang penapis, gunakan operator logik '&' (AND) dan '|' (ATAU). Contohnya:
<code class="python">df[(df['col1'] >= 1) & (df['col1'] <=1 )]</code>
Ungkapan ini mengembalikan DataFrame yang mengandungi hanya baris dengan nilai dalam lajur 'col1' antara 1 dan 1 termasuk.
Untuk fungsi pembantu, pertimbangkan untuk menentukan fungsi yang ambil DataFrame dan kembalikan Siri Boolean, membolehkan anda menggabungkan berbilang penapis menggunakan operator logik.
<code class="python">def b(x, col, op, n): return op(x[col],n) def f(x, *b): return x[(np.logical_and(*b))]</code>
Pandas 0.13 memperkenalkan kaedah query(), yang menyediakan cara yang lebih cekap untuk menyatakan keadaan penapisan yang kompleks. Dengan mengandaikan pengecam lajur yang sah, kod berikut menapis DataFrame df berdasarkan berbilang syarat:
<code class="python">df.query('col1 <= 1 & 1 <= col1')</code>
Ringkasnya, pengindeksan boolean menawarkan kaedah yang cekap untuk menggunakan berbilang penapis pada Pandas DataFrames atau Series tanpa membuat salinan yang tidak diperlukan. Gunakan operator logik dan fungsi pembantu untuk menggabungkan berbilang penapis untuk kefungsian lanjutan.
Atas ialah kandungan terperinci Bagaimana untuk Menapis Pandas DataFrame atau Siri dengan Cekap dengan Pelbagai Keadaan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!