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