Latar Belakang
Menapis bingkai data Pandas besar berdasarkan berbilang subrentetan dalam rentetan lajur boleh menjadi operasi pengiraan yang mahal. Pendekatan konvensional melibatkan penggunaan topeng untuk setiap subrentetan dan kemudian mengurangkannya menggunakan operasi logik.
Pendekatan Cadangan
Untuk meningkatkan kecekapan, kami mencadangkan memanfaatkan ungkapan biasa (dengan escaped aksara khas) untuk padanan subrentetan. Dengan menyertai subrentetan yang terlepas menggunakan paip regex (|), kami boleh menguji setiap subrentetan terhadap rentetan sehingga padanan ditemui.
Pelaksanaan
import re # Escape special characters in substrings esc_lst = [re.escape(s) for s in lst] # Join escaped substrings using regex pipe pattern = '|'.join(esc_lst) # Filter based on concatenated pattern df[col].str.contains(pattern, case=False)
Pertimbangan Prestasi
Prestasi dipertingkatkan dengan mengurangkan bilangan ujian yang diperlukan setiap baris. Kaedah menyemak subrentetan sehingga padanan ditemui, menghapuskan lelaran yang tidak perlu.
Penanda Aras
Menggunakan kerangka data sampel dengan 50,000 rentetan dan 100 subrentetan, kaedah yang dicadangkan mengambil masa kira-kira satu kedua, berbanding lima saat pendekatan konvensional. Kelebihan prestasi ini akan meningkat dengan set data yang lebih besar.
Kesimpulan
Dengan memanfaatkan ungkapan biasa dengan aksara khas yang terlepas, kami boleh menapis bingkai data Pandas dengan cekap untuk berbilang subrentetan, dengan ketara mengurangkan overhed pengiraan.
Atas ialah kandungan terperinci Bagaimanakah Ungkapan Biasa Boleh Mengoptimumkan Penapisan Panda untuk Berbilang Subrentetan dalam Siri?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!