Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimana untuk mendapatkan semula baris pertama setiap kumpulan dalam Pandas DataFrame berdasarkan berbilang lajur?

Bagaimana untuk mendapatkan semula baris pertama setiap kumpulan dalam Pandas DataFrame berdasarkan berbilang lajur?

DDD
DDDasal
2024-11-17 09:59:03816semak imbas

How to retrieve the first row of each group in a Pandas DataFrame based on multiple columns?

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:

  1. Kumpulkan Data: Kumpulkan DataFrame mengikut lajur yang dikehendaki menggunakan kaedah groupby():

    df_grouped = df.groupby(['id', 'value'])
  2. Gunakan Fungsi Pengagregatan: Gunakan fungsi pertama() pada setiap kumpulan untuk mendapatkan elemen bukan nol pertama:

    df_first_rows = df_grouped.first()
  3. 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!

Kenyataan:
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