Rumah > pembangunan bahagian belakang > Tutorial Python > Bagaimana untuk Menggugurkan Pendua Berturut-turut dengan Cekap dalam Panda?

Bagaimana untuk Menggugurkan Pendua Berturut-turut dengan Cekap dalam Panda?

Mary-Kate Olsen
Lepaskan: 2024-11-13 17:29:02
asal
736 orang telah melayarinya

How to Efficiently Drop Consecutive Duplicates in Pandas?

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]
Salin selepas log masuk

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]
Salin selepas log masuk

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]
Salin selepas log masuk

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!

Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan