Bagaimana untuk Mengekalkan Lajur Semasa Groupby dengan Pemilihan Nilai Minimum dalam Panda?

Susan Sarandon
Lepaskan: 2024-10-25 08:18:02
asal
185 orang telah melayarinya

How to Preserve Columns During Groupby with Minimum Value Selection in Pandas?

Memelihara Lajur Semasa Groupby dengan Pemilihan Nilai Minimum

Masalah:

Apabila membuat persembahan kumpulanby operasi pada bingkai data panda untuk memilih baris dengan nilai minimum untuk lajur tertentu, lajur lain selalunya digugurkan secara tidak sengaja. Ini boleh menjadi masalah apabila maklumat tambahan daripada lajur ini dikehendaki.

Penyelesaian 1: Menggunakan idxmin() untuk Pemilihan Indeks

Untuk mengekalkan lajur yang lain, satu pendekatan ialah untuk menggunakan idxmin() untuk mendapatkan indeks elemen dengan nilai minimum untuk lajur yang ditentukan. Indeks ini kemudiannya boleh digunakan untuk memilih baris yang sepadan daripada bingkai data asal:

<code class="python">df_min = df.loc[df.groupby("item")["diff"].idxmin()]</code>
Salin selepas log masuk

Penyelesaian 2: Mengisih dan Memilih Elemen Pertama

Kaedah alternatif ialah untuk mengisih kerangka data mengikut lajur nilai minimum dan kemudian pilih elemen pertama daripada setiap kumpulan:

<code class="python">df_min = df.sort_values("diff").groupby("item", as_index=False).first()</code>
Salin selepas log masuk

Contoh:

Kedua-dua penyelesaian ini mencapai hasil yang diinginkan daripada mengekalkan lajur lain sambil memilih baris dengan nilai minimum untuk lajur yang ditentukan:

<code class="python">df = pd.DataFrame({
    "item": [1, 1, 1, 2, 2, 2, 2, 3, 3],
    "diff": [2, 1, 3, -1, 1, 4, -6, 0, 2],
    "otherstuff": [1, 2, 7, 0, 3, 9, 2, 0, 9]
})

df_min_idx = df.loc[df.groupby("item")["diff"].idxmin()]
df_min_sort = df.sort_values("diff").groupby("item", as_index=False).first()

print(df_min_idx)
print(df_min_sort)</code>
Salin selepas log masuk

Output:

   item  diff  otherstuff
1     1     1           2
6     2    -6           2
7     3     0           0

   item  diff  otherstuff
0     1     1           2
1     2    -6           2
2     3     0           0
Salin selepas log masuk

Atas ialah kandungan terperinci Bagaimana untuk Mengekalkan Lajur Semasa Groupby dengan Pemilihan Nilai Minimum dalam Panda?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!