Rumah > pembangunan bahagian belakang > Tutorial Python > Bagaimana untuk Menambah Lajur Kaunter Berjujukan ke Kumpulan Pandas DataFrame dengan Cekap?

Bagaimana untuk Menambah Lajur Kaunter Berjujukan ke Kumpulan Pandas DataFrame dengan Cekap?

Mary-Kate Olsen
Lepaskan: 2024-12-23 21:29:11
asal
444 orang telah melayarinya

How to Efficiently Add a Sequential Counter Column to Pandas DataFrame Groups?

Tambah Lajur Kaunter Berjujukan pada Kumpulan pada Bingkai Data Pandas Tanpa Panggilan Balik

Kod Python yang disediakan menunjukkan satu cara untuk menambah pembilang berjujukan lajur (seq) kepada kerangka data dengan melaksanakan operasi kumpulan mengikut lajur tertentu ('c1' dan 'c2') dan menggunakan fungsi tersuai. Walau bagaimanapun, mungkin terdapat pendekatan yang lebih cekap untuk mencapai hasil ini tanpa memerlukan panggilan balik.

Satu alternatif ialah menggunakan fungsi cumcount(), yang menawarkan cara mudah untuk menjana nombor berjujukan dalam kumpulan. Berikut ialah penyelesaian yang dipertingkatkan:

df['seq'] = df.groupby(['c1', 'c2']).cumcount() + 1
Salin selepas log masuk

Baris ini menambah lajur baharu bernama 'seq' pada bingkai data, yang mengandungi nombor berjujukan untuk setiap kumpulan yang ditakrifkan oleh lajur 'c1' dan 'c2'. Fungsi cumcount() digunakan di sepanjang kumpulan yang ditentukan, dan hasilnya dianjakkan sebanyak 1 untuk memulakan kiraan daripada 1 dan bukannya 0.

Berikut ialah output bingkai data yang diubah suai:

   c1 c2  v1  seq
0   A  X   3    1
1   A  X   5    2
2   A  Y   7    1
3   A  Y   1    2
4   B  X   3    1
5   B  X   1    2
6   B  X   3    3
7   B  Y   1    1
8   C  X   7    1
9   C  Y   4    1
10  C  Y   1    2
11  C  Y   6    3
Salin selepas log masuk

Dengan menggunakan cumcount(), lajur pembilang berjujukan ditambahkan pada tempatnya pada bingkai data asal, menghapuskan keperluan untuk fungsi panggil balik dan memudahkan kod.

Atas ialah kandungan terperinci Bagaimana untuk Menambah Lajur Kaunter Berjujukan ke Kumpulan Pandas DataFrame dengan Cekap?. 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