Bagaimana untuk Menapis Pandas DataFrame atau Siri dengan Cekap dengan Pelbagai Keadaan?

DDD
Lepaskan: 2024-10-20 11:56:02
asal
365 orang telah melayarinya

How to Efficiently Filter Pandas DataFrame or Series with Multiple Conditions?

Menapis DataFrame atau Siri Panda 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>
Salin selepas log masuk

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) &amp; (df['col1'] <=1 )]</code>
Salin selepas log masuk

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

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 &amp; 1 <= col1')</code>
Salin selepas log masuk

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!

sumber:php
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!