Dapatkan Baris Pertama Setiap Kumpulan dalam Pandas DataFrame
Soalan:
Bagaimana bolehkah anda mengekstrak baris pertama setiap kumpulan dengan cekap daripada Pandas DataFrame, di mana kumpulan ditakrifkan oleh berbilang lajur?
Jawapan:
Untuk mendapatkan semula baris pertama setiap kumpulan dalam Pandas DataFrame berdasarkan berbilang lajur:
Kumpulkan Data: Kumpulkan DataFrame mengikut lajur yang dikehendaki menggunakan kaedah groupby():
df_grouped = df.groupby(['id', 'value'])
Gunakan Fungsi Pengagregatan: Gunakan fungsi pertama() pada setiap kumpulan untuk mendapatkan elemen bukan nol pertama:
df_first_rows = df_grouped.first()
Tetapkan Semula Indeks (Pilihan): Jika anda memerlukan lajur 'id' dan 'nilai' sebagai lajur berasingan, gunakan kaedah reset_index():
df_first_rows = df_first_rows.reset_index()
Contoh:
Pertimbangkan DataFrame berikut:
df = pd.DataFrame({'id': [1, 1, 1, 2, 2, 3, 3, 3, 3, 4, 4, 5, 6, 6, 6, 7, 7], 'value': ["first", "second", "second", "first", "second", "first", "third", "fourth", "fifth", "second", "fifth", "first", "first", "second", "third", "fourth", "fifth"]})
Menggunakan 上記のlangkah:
df_grouped = df.groupby(['id', 'value']) df_first_rows = df_grouped.first() df_first_rows = df_first_rows.reset_index() print(df_first_rows)
Output:
id value 0 1 first 1 2 first 2 3 first 3 4 second 4 5 first 5 6 first 6 7 fourth
Kod ini berjaya mendapatkan semula baris pertama setiap kumpulan yang ditakrifkan oleh lajur 'id' dan 'nilai'.
Atas ialah kandungan terperinci Bagaimana untuk mendapatkan semula baris pertama setiap kumpulan dalam Pandas DataFrame berdasarkan berbilang lajur?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!