在Groupby 操作期間維護其他欄位
在pandas 資料幀上執行groupby 作業時,通常需要保留不屬於的欄位或聚合過程。預設情況下,操作完成後將刪除這些其他欄位。如果保留的列包含有價值的信息,這可能會出現問題。
考慮以下資料框:
item diff otherstuff 0 1 2 1 1 1 1 2 2 1 3 7 3 2 -1 0 4 2 1 3 5 2 4 9 6 2 -6 2 7 3 0 0 8 3 2 9
如果我們按「item」列將資料框分組並找到「diff」列的最小值,結果資料框將如下所示:
item diff 0 1 1 1 2 -6 2 3 0
請注意,「otherstuff」欄位已刪除。要保留此列,我們可以使用idxmin() 方法來取得最小差異元素的索引,然後選擇這些元素:
>>> df.loc[df.groupby("item")["diff"].idxmin()] item diff otherstuff 1 1 1 2 6 2 -6 2 7 3 0 0 [3 rows x 3 columns]
另一種方法是按「diff」對資料框進行排序" 列,然後取得每個項目組中的第一個元素:
>>> df.sort_values("diff").groupby("item", as_index=False).first() item diff otherstuff 0 1 1 2 1 2 -6 2 2 3 0 0 [3 rows x 3 columns]
這兩種方法都會產生所需的結果,同時保留「otherstuff」列。索引也可能不同。
以上是如何在 groupby 作業期間維護 Pandas DataFrame 中的其他欄位?的詳細內容。更多資訊請關注PHP中文網其他相關文章!