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中文網其他相關文章!