Menguji Kehadiran Subrentetan dalam Rentetan Menggunakan Pandas DataFrame
Apabila bekerja dengan data rentetan dalam perpustakaan Pandas Python, anda mungkin menghadapi keperluan untuk menentukan sama ada rentetan mengandungi sebarang subrentetan daripada senarai yang diberikan. Walaupun terdapat pelbagai fungsi yang menyemak kehadiran subrentetan, seperti df.isin() dan df[col].str.contains(), penggunaannya secara gabungan boleh menjadi agak rumit.
Andaikan kita mempunyai Panda Siri yang mengandungi rentetan seperti "kucing", "topi", "anjing", "kabus" dan "haiwan peliharaan", dan kami ingin mengenal pasti semua rentetan yang termasuk sama ada "og" atau "at."
Satu penyelesaian ialah menggunakan corak regex yang sepadan dengan mana-mana subrentetan dalam senarai menggunakan "|" watak. Sebagai contoh, dengan menyertai subrentetan dalam carian untuk menggunakan "|," kami mencipta regex:
>>> searchfor = ['og', 'at'] >>> regex_pattern = '|'.join(searchfor) >>> s[s.str.contains(regex_pattern)] 0 cat 1 hat 2 dog 3 fog dtype: object
Pendekatan ini berkesan mencari semua rentetan dalam s yang mengandungi sama ada "og" atau "at." Ia adalah kaedah yang ringkas dan cekap.
Walau bagaimanapun, jika subrentetan dalam carian mengandungi aksara khas seperti "$" atau "^," adalah penting untuk melepaskannya menggunakan re.escape() untuk memastikan padanan literal. Contohnya:
>>> import re >>> matches = ['$money', 'x^y'] >>> safe_matches = [re.escape(m) for m in matches] >>> regex_pattern = '|'.join(safe_matches) >>> s[s.str.contains(regex_pattern)] 0 cat 1 hat 2 dog 3 fog dtype: object
Dengan melarikan diri daripada aksara khas, kami memastikan ia sepadan dengan setiap aksara secara literal apabila digunakan dengan str.contains. Pendekatan ini menyediakan penyelesaian yang mantap untuk pengesanan subrentetan dalam Siri Pandas.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Memeriksa Berbilang Substring dengan Cekap dalam Siri Pandas?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!