首頁 >後端開發 >Python教學 >如何在分組的 Pandas DataFrame 中找到最小值時保留其他欄位?

如何在分組的 Pandas DataFrame 中找到最小值時保留其他欄位?

Barbara Streisand
Barbara Streisand原創
2024-10-24 20:29:29605瀏覽

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

Pandas DataFrame 中分組最小操作期間保留其他列

使用groupby 函數按特定列將資料分組並執行聚合操作時與查找最小值一樣,DataFrame 中的其他欄位可能會被無意中刪除。

要在對分組列執行最小操作時保留其他列,請考慮以下方法:

方法1 :使用idxmin()

idxmin () 傳回每組內最小值的索引。透過利用此功能,您可以只選擇所需的行:

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

方法2:排序並取得第一個元素

或者,您可以按以下方式對資料幀進行排序在執行groupby 操作並提取每組中的第一行之前的最小列:

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

兩種方法都會產生所需的輸出,保留otherstuff 列,同時根據最小差異值過濾行:

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

請注意,儘管行內容保持不變,但兩種方法產生的索引可能會有所不同。

以上是如何在分組的 Pandas DataFrame 中找到最小值時保留其他欄位?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn