Rumah > pembangunan bahagian belakang > Tutorial Python > Bagaimana untuk Menyimpan Lajur Lain Apabila Menggunakan GroupBy dalam Panda?

Bagaimana untuk Menyimpan Lajur Lain Apabila Menggunakan GroupBy dalam Panda?

Mary-Kate Olsen
Lepaskan: 2024-10-24 18:32:48
asal
1087 orang telah melayarinya

How to Keep Other Columns When Using GroupBy in Pandas?

Menyimpan Lajur Lain Apabila GroupBy

Dalam bingkai data Pandas, menggunakan groupby untuk menapis baris berdasarkan lajur tertentu boleh mengakibatkan kehilangan yang lain lajur dalam output. Isu ini timbul apabila melakukan operasi kumpulan seperti mencari nilai minimum lajur dan mengecualikan baris di bawah ambang.

Untuk mengatasi had ini dan mengekalkan lajur lain semasa kumpulan mengikut, terdapat beberapa kaedah:

Kaedah 1: Menggunakan idxmin()

idxmin() mengembalikan indeks baris dengan nilai minimum untuk lajur tertentu. Dengan menggunakan ini, kita boleh memilih baris tertentu dan mengekalkan semua lajurnya:

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

Kaedah 2: Isih dan Pertama

Isih bingkai data mengikut lajur ke ditapis dan kemudian mengambil elemen pertama setiap kumpulan juga akan mengekalkan lajur lain:

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

Kedua-dua kaedah menghasilkan hasil yang sama, seperti yang dilihat dalam contoh di bawah:

<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]})

# Method 1
df_filtered1 = df.loc[df.groupby("item")["diff"].idxmin()]

# Method 2
df_filtered2 = df.sort_values("diff").groupby("item", as_index=False).first()

print(df_filtered1)
print(df_filtered2)</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 Menyimpan Lajur Lain Apabila Menggunakan GroupBy dalam Panda?. 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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan