Rumah > pembangunan bahagian belakang > Tutorial Python > Cara Menapis DataFrames dan Siri Pandas Menggunakan Pelbagai Kriteria dengan Cekap

Cara Menapis DataFrames dan Siri Pandas Menggunakan Pelbagai Kriteria dengan Cekap

Susan Sarandon
Lepaskan: 2024-10-20 12:18:30
asal
261 orang telah melayarinya

How to Efficiently Filter Pandas DataFrames and Series Using Multiple Criteria

Menggunakan Berbilang Penapis dengan Cekap pada Bingkai Data dan Siri Pandas

Apabila bekerja dengan data dalam Pandas, selalunya perlu menapis berdasarkan berbilang kriteria. Walaupun pendekatan tradisional melibatkan rantaian beberapa operasi indeks semula(), teknik ini mencipta objek baharu dan menyalin data, mengakibatkan ketidakcekapan.

Pendekatan alternatif ialah menggunakan pengindeksan boolean, yang jauh lebih cekap. Pandas membenarkan pengindeksan boolean, membolehkan subset langsung data berdasarkan penilaian Benar/Salah.

<code class="python">df.loc[df['col1'] >= 1, 'col1']</code>
Salin selepas log masuk

Teknik ini mengelakkan penciptaan objek baharu dan penyalinan yang tidak perlu, menyediakan cara menapis data yang lebih cekap.

Untuk meningkatkan lagi kecekapan, seseorang boleh menulis fungsi pembantu untuk tujuan ini:

<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

Dengan fungsi pembantu ini, penggunaan berbilang penapis menjadi mudah:

<code class="python">b1 = b(df, 'col1', ge, 1)
b2 = b(df, 'col1', le, 1)
f(df, b1, b2)</code>
Salin selepas log masuk

Untuk versi Pandas 0.13 dan ke atas, kaedah pertanyaan khusus menyediakan cara yang lebih cekap untuk menggunakan berbilang penapis, memanfaatkan numexpr untuk pengoptimuman:

<code class="python">df.query('col1 <= 1 & 1 <= col1')</code>
Salin selepas log masuk

Atas ialah kandungan terperinci Cara Menapis DataFrames dan Siri Pandas Menggunakan Pelbagai Kriteria dengan Cekap. 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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan