Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimanakah Saya Boleh Menyemak Berbilang Rangkuman Substring dengan Cekap dalam Panda?

Bagaimanakah Saya Boleh Menyemak Berbilang Rangkuman Substring dengan Cekap dalam Panda?

Patricia Arquette
Patricia Arquetteasal
2024-12-05 01:29:14889semak imbas

How Can I Efficiently Check for Multiple Substring Inclusions in Pandas?

Menguji Kemasukan Subrentetan Rentetan Menggunakan Panda

Dalam panda, timbul keperluan untuk menentukan sama ada rentetan mengandungi mana-mana subrentetan yang terdapat dalam senarai. Untuk menangani perkara ini, gabungan df.isin() dan df[col].str.contains() boleh digunakan. Walau bagaimanapun, pendekatan ini dianggap menyusahkan.

Penyelesaian yang Diperbaiki

Pendekatan yang lebih halus melibatkan memanfaatkan | (paip) aksara dalam ungkapan biasa untuk memadankan berbilang subrentetan secara serentak. Teknik ini memerlukan penyatuan subrentetan dalam senarai menggunakan '|'.join():

searchfor = ['og', 'at']
s[s.str.contains('|'.join(searchfor))]

Pendekatan ini dengan cekap mengenal pasti rentetan yang sepadan dengan mana-mana subrentetan yang ditentukan, menghasilkan hasil yang diperhalusi:

0    cat
1    hat
2    dog
3    fog
dtype: object

Mengendalikan Watak Istimewa

Adalah penting untuk berhati-hati apabila berurusan dengan subrentetan yang mengandungi aksara khas seperti $ dan ^ yang mempunyai makna khusus dalam ungkapan biasa. Untuk memastikan padanan literal, gunakan re.escape() untuk melepaskan aksara ini:

import re
matches = ['$money', 'x^y']
safe_matches = [re.escape(m) for m in matches]

s[s.str.contains('|'.join(safe_matches))]

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menyemak Berbilang Rangkuman Substring dengan Cekap 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