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
682 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!

sumber:php.cn
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