Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimanakah Saya Boleh Semak dengan Cekap sama ada Siri Pandas Mengandungi Mana-mana Subrentetan daripada Senarai Diberikan?

Bagaimanakah Saya Boleh Semak dengan Cekap sama ada Siri Pandas Mengandungi Mana-mana Subrentetan daripada Senarai Diberikan?

Susan Sarandon
Susan Sarandonasal
2024-11-30 01:37:10964semak imbas

How Can I Efficiently Check if a Pandas Series Contains Any Substring from a Given List?

Menguji Kemasukan Subrentetan Rentetan dalam Panda

Mencari kaedah yang cekap untuk menentukan sama ada rentetan dalam siri Pandas mengandungi mana-mana senarai tertentu subrentetan? Pertanyaan mengenai perkara ini boleh dilihat di bawah:

Pertanyaan Asal:

Adakah terdapat fungsi panda yang menggabungkan fungsi df.isin() dan df[col] .str.contains()? Saya berhasrat untuk mengenal pasti semua keadaan di mana siri mengandungi sebarang subrentetan daripada senarai yang diberikan.

Penyelesaian Cadangan:

Satu pendekatan yang dicadangkan dalam forum menggunakan pemahaman gelung dan senarai untuk menyemak setiap subrentetan dalam siri. Walau bagaimanapun, penyelesaian yang lebih ringkas dan cekap wujud.

Penyelesaian Berasaskan Regex:

Memanfaatkan regex | operator, seseorang boleh membina regex yang sepadan dengan setiap subrentetan dalam senarai yang diberikan. Regex ini kemudiannya boleh digunakan dengan str.contains untuk menapis siri untuk nilai yang diingini.

import re

searchfor = ['og', 'at']
regex = '|'.join(searchfor)
df['matching_column'][df['matching_column'].str.contains(regex)]

Pendekatan ini lebih cekap daripada kaedah berulang dan berkesan mencapai hasil yang diinginkan.

Mengendalikan Aksara Khas:

Jika subrentetan mengandungi aksara khas dengan kepentingan regex, seperti sebagai $ atau ^, mereka harus dilepaskan menggunakan re.escape() untuk memastikan ia ditafsirkan secara literal.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Semak dengan Cekap sama ada Siri Pandas Mengandungi Mana-mana Subrentetan daripada Senarai Diberikan?. 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