Bagaimana untuk Menapis Struktur Data Panda dengan Cekap Menggunakan Pengindeksan Boolean?

DDD
Lepaskan: 2024-10-20 12:53:29
asal
754 orang telah melayarinya

How to Efficiently Filter Pandas Data Structures Using Boolean Indexing?

Penapisan Cekap Struktur Data Pandas Menggunakan Pengindeksan Boolean

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.

Pengindeksan Boolean: Pendekatan Unggul

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

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.

Kaedah Pertanyaan Pandas untuk Prestasi Dipertingkatkan

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

Keterlanjutan kepada DataFrames

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!

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