Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimanakah Saya Boleh Mendapatkan Rekod Teratas dengan Cekap daripada Setiap Kumpulan dalam Bingkai Data Pandas?
Panda: Cekap Mendapatkan Rekod Teratas Dalam Kumpulan
Apabila bekerja dengan Pandas DataFrames, selalunya perlu mengekstrak rekod terkemuka daripada setiap kumpulan . Pendekatan biasa ialah menggunakan fungsi 'groupby' dan 'apply' untuk menghitung rekod dalam setiap kumpulan.
dfN = df.groupby('id').apply(lambda x:x['value'].reset_index()).reset_index()
Walau bagaimanapun, wujud pendekatan yang lebih diperkemas:
df.groupby('id').head(2)
Ini kaedah secara langsung mengambil rekod paling atas tanpa memerlukan pengiraan perantaraan. Selain itu, DataFrame yang dijana mengekalkan indeks asalnya.
Untuk meratakan MultiIndex yang terhasil, gunakan:
df.groupby('id').head(2).reset_index(drop=True)
Ini akan menghasilkan DataFrame berikut:
id | value |
---|---|
1 | 1 |
1 | 2 |
2 | 1 |
2 | 2 |
3 | 1 |
4 | 1 |
Sebagai alternatif , anda boleh menggunakan fungsi tetingkap "row_number()" SQL untuk menghitung rekod dalam kumpulan dengan cekap. Walau bagaimanapun, ciri ini tidak tersedia dalam Panda pada masa ini.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mendapatkan Rekod Teratas dengan Cekap daripada Setiap Kumpulan dalam Bingkai Data Pandas?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!