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
Lepaskan: 2024-11-17 09:59:03
asal
806 orang telah melayarinya

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'])
    Salin selepas log masuk
  2. Gunakan Fungsi Pengagregatan: Gunakan fungsi pertama() pada setiap kumpulan untuk mendapatkan elemen bukan nol pertama:

    df_first_rows = df_grouped.first()
    Salin selepas log masuk
  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()
    Salin selepas log masuk

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"]})
Salin selepas log masuk

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)
Salin selepas log masuk

Output:

   id   value
0   1   first
1   2   first
2   3   first
3   4   second
4   5   first
5   6   first
6   7   fourth
Salin selepas log masuk

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!

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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan