Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bolehkah Rantaian Operator Digunakan untuk Penapisan Baris DataFrame dalam Panda?

Bolehkah Rantaian Operator Digunakan untuk Penapisan Baris DataFrame dalam Panda?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-11-04 18:49:02544semak imbas

Can Operator Chaining Be Used for DataFrame Row Filtering in Pandas?

Menapis Baris DataFrame dengan Operator Chaining

Walaupun panda menawarkan sokongan meluas untuk operator rantaian dalam pelbagai operasi (kumpulan, agregat, terpakai), keupayaan untuk menapis baris melalui kaedah ini nampaknya terhad. Sebaliknya, pengguna secara tradisinya menggunakan pengindeksan kurungan persegi untuk penapisan baris. Walau bagaimanapun, pendekatan ini memerlukan penugasan DataFrame kepada pembolehubah terlebih dahulu, yang boleh menyusahkan.

Untuk menangani had ini, sesetengah pengguna telah meneroka kemungkinan merantai kriteria penapisan dalam indeks boolean. Contohnya:

df[(df.A == 1) & (df.D == 6)]

Sintaks ini membolehkan penapisan yang ringkas dan cekap dengan menggabungkan berbilang keadaan.

Jika fungsi yang diingini ialah merantai kaedah dan bukannya kriteria penapis, pengguna boleh menentukan topeng tersuai kaedah yang berfungsi sebagai pembalut kaedah di sekitar operasi penapisan asas.

def mask(df, key, value):
    return df[df[key] == value]

Dengan menambahkan kaedah ini pada kelas DataFrame:

pandas.DataFrame.mask = mask

Pengguna kemudiannya boleh memanfaatkan keupayaan merantai kaedah panda untuk melaksanakan berbilang operasi penapisan dalam satu baris kod:

df.mask('A', 1).mask('D', 6)

Pendekatan ini menyediakan penyelesaian yang boleh disesuaikan dan fleksibel untuk merantai operasi penapisan pada DataFrames.

Atas ialah kandungan terperinci Bolehkah Rantaian Operator Digunakan untuk Penapisan Baris DataFrame dalam Panda?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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