Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk Mengekalkan Lajur Lain Semasa Mencari Minimum dalam Bingkai Data Pandas Berkumpulan?

Bagaimana untuk Mengekalkan Lajur Lain Semasa Mencari Minimum dalam Bingkai Data Pandas Berkumpulan?

Barbara Streisand
Barbara Streisandasal
2024-10-24 20:29:29511semak imbas

How to Keep Other Columns While Finding Minimums in Grouped Pandas DataFrames?

Menyimpan Lajur Lain Semasa Operasi Minimum Berkumpulan dalam Pandas DataFrame

Apabila menggunakan fungsi kumpulan mengikut untuk mengumpulkan data mengikut lajur tertentu dan melaksanakan operasi pengagregatan seperti mencari minimum, lajur lain dalamDataFrame mungkin digugurkan secara tidak sengaja.

Untuk mengekalkan lajur tambahan semasa melakukan operasi minimum pada lajur berkumpulan, pertimbangkan kaedah berikut:

Kaedah 1 : Menggunakan idxmin()

idxmin() mengembalikan indeks nilai minimum dalam setiap kumpulan. Dengan menggunakan ini, anda boleh memilih baris yang dikehendaki sahaja:

<code class="python">result = df.loc[df.groupby("item")["diff"].idxmin()]</code>

Kaedah 2: Menyusun dan Mendapatkan Elemen Pertama

Sebagai alternatif, anda boleh mengisih kerangka data mengikut lajur minimum sebelum melaksanakan operasi kumpulan mengikut dan mengekstrak baris pertama dalam setiap kumpulan:

<code class="python">result = df.sort_values("diff").groupby("item", as_index=False).first()</code>

Kedua-dua kaedah akan menghasilkan output yang diingini, mengekalkan lajur bahan lain sambil menapis baris berdasarkan nilai perbezaan minimum:

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

Perhatikan bahawa indeks yang terhasil mungkin berbeza antara kedua-dua kaedah, walaupun kandungan baris kekal sama.

Atas ialah kandungan terperinci Bagaimana untuk Mengekalkan Lajur Lain Semasa Mencari Minimum dalam Bingkai Data Pandas Berkumpulan?. 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