Meningkatkan Prestasi Penggantian Nilai dalam Siri Pandas Menggunakan Kamus
Menggantikan nilai dalam siri Pandas menggunakan kamus adalah tugas biasa. Walaupun menggantikan nilai menggunakan s.replace(d) disyorkan, ia boleh menjadi lebih perlahan daripada menggunakan pemahaman senarai yang mudah.
Punca Prestasi Lambat
Prestasi yang perlahan daripada s.replace(d) berpunca daripada pengendalian kes tepi dan situasi yang jarang berlaku. Ia melibatkan:
Kaedah Alternatif
Untuk meningkatkan prestasi, pertimbangkan untuk menggunakan kaedah berikut:
Penanda Aras
Tanda aras menunjukkan perbezaan prestasi antara s.replace(d), s .map(d) dan pemahaman senarai:
##### Full Map ##### d = {i: i+1 for i in range(1000)} %timeit df['A'].replace(d) # Slow (1.98s) %timeit df['A'].map(d) # Fast (84.3ms) ##### Partial Map ##### d = {i: i+1 for i in range(10)} %timeit df['A'].replace(d) # Intermediate (20.1ms) %timeit df['A'].map(d).fillna(df['A']).astype(int) # Faster (111ms)
Ini mendedahkan bahawa s.map(d) secara konsisten lebih pantas daripada s.replace(d) untuk pemetaan penuh atau separa.
Kesimpulan
Bergantung pada kesempurnaan liputan kamus, s.map(d) atau s.map(d).fillna(s['A']).astype(int) harus diutamakan daripada s.replace(d) untuk penggantian nilai yang cekap dalam siri Pandas.
Atas ialah kandungan terperinci Mengapakah Menggunakan Kamus untuk Menggantikan Nilai dalam Siri Panda Lambat, dan Bagaimana Anda Boleh Meningkatkan Prestasi?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!