Rumah > Artikel > pembangunan bahagian belakang > Mengapakah `s.replace` Pandas Lambat untuk Penggantian Nilai Berasaskan Kamus?
Memahami Jurang Prestasi Antara s.replace dan Kaedah Penggantian Nilai Lain dalam Panda
Menggantikan nilai dalam siri Pandas menggunakan kamus ialah tugas biasa. Walau bagaimanapun, s.replace, kaedah yang disyorkan untuk operasi ini, selalunya menunjukkan prestasi yang jauh lebih perlahan berbanding kaedah alternatif seperti pemahaman senarai.
Punca Kelambatan s.replace
s.replace melakukan pemprosesan tambahan melangkaui pemetaan kamus mudah. Ia mengendalikan kes tepi dan situasi yang jarang berlaku, yang memerlukan operasi yang lebih kompleks dan memakan masa. Khususnya, s.replace menukar kamus kepada senarai, menyemak kamus bersarang dan melelang melalui senarai untuk menyuap kekunci dan nilai ke dalam fungsi ganti yang berasingan. Overhed ini melambatkan proses dengan ketara.
Mengoptimumkan Penggantian Nilai
Untuk mengoptimumkan penggantian nilai, garis panduan berikut harus dipatuhi:
Petanda aras
Hasil penandaarasan menunjukkan perbezaan prestasi antara pelbagai kaedah penggantian:
UJIAN 1 - Penuh Peta
%timeit df['A'].replace(d) # 1.98s %timeit df['A'].map(d) # 84.3ms %timeit [d[i] for i in lst] # 134ms
UJIAN 2 - Peta Separa
%timeit df['A'].replace(d) # 20.1ms %timeit df['A'].map(d).fillna(df['A']).astype(int) # 111ms %timeit [d.get(i, i) for i in lst] # 243ms
Keputusan ini jelas menunjukkan bahawa s.map dan versi diubah suainya berprestasi lebih pantas daripada s. .ganti, terutamanya apabila sebahagian besar nilai siri diliputi oleh kekunci kamus.
Atas ialah kandungan terperinci Mengapakah `s.replace` Pandas Lambat untuk Penggantian Nilai Berasaskan Kamus?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!