Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk Mengekalkan Lajur Semasa Groupby dengan Pemilihan Nilai Minimum dalam Panda?

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

Susan Sarandon
Susan Sarandonasal
2024-10-25 08:18:02174semak imbas

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>

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>

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>

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

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!

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