Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimana untuk Menggugurkan Pendua Berturut-turut dengan Cekap dalam Panda?
Pengguguran Pendua Berturut-turut yang Cekap dalam Panda
Apabila bekerja dengan DataFrames panda, selalunya perlu mengalih keluar nilai pendua. Kaedah drop_duplicates() terbina dalam, bagaimanapun, mengalih keluar semua contoh nilai pendua, termasuk pendua berturut-turut. Untuk kes di mana hanya pendua berturut-turut perlu digugurkan, terdapat kaedah yang lebih cekap tersedia.
Satu pendekatan melibatkan penggunaan fungsi shift(). Dengan membandingkan DataFrame dengan versi dianjaknya (a.shift(-1)), topeng boolean boleh dibuat yang mengenal pasti tempat pendua berturut-turut berlaku. Topeng ini kemudiannya boleh digunakan untuk memilih nilai unik sahaja, seperti yang dilihat dalam contoh berikut:
a.loc[a.shift(-1) != a]
Kaedah lain menggunakan fungsi diff(). Ia mengira perbezaan antara baris dan boleh digunakan untuk mengenal pasti pendua berturut-turut. Walau bagaimanapun, ia lebih perlahan daripada kaedah shift() untuk set data yang besar.
Menggunakan:
a.loc[a.diff() != 0]
Jawapan asal dicadangkan menggunakan shift() dengan tempoh -1, tetapi penggunaan yang betul ialah anjakan(1) (atau ringkasnya anjakan()) kerana tempoh anjakan lalai ialah 1. Pengubahsuaian ini memastikan bahawa hanya nilai berturut-turut pertama dikembalikan:
a.loc[a.shift(1) != a]
Kedua-dua anjakan() dan beza() kaedah menyediakan cara yang cekap untuk menggugurkan pendua berturut-turut dalam Panda dan harus dipertimbangkan berdasarkan konteks khusus dan keperluan prestasi.
Atas ialah kandungan terperinci Bagaimana untuk Menggugurkan Pendua Berturut-turut dengan Cekap dalam Panda?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!