首頁  >  文章  >  後端開發  >  如何在 groupby 作業期間維護 Pandas DataFrame 中的其他欄位?

如何在 groupby 作業期間維護 Pandas DataFrame 中的其他欄位?

Barbara Streisand
Barbara Streisand原創
2024-10-27 09:09:03601瀏覽

How can I maintain other columns in a Pandas DataFrame during a groupby operation?

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

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