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

Bagaimana untuk Menyimpan Lajur Lain Apabila Menggunakan GroupBy dalam Panda?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-10-24 18:32:48961semak imbas

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>

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>

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>

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 Menyimpan Lajur Lain Apabila Menggunakan GroupBy 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