首頁 > 後端開發 > Python教學 > 如何有效率地取得 Pandas DataFrame 中每組的前幾筆記錄?

如何有效率地取得 Pandas DataFrame 中每組的前幾筆記錄?

Barbara Streisand
發布: 2024-11-25 18:03:10
原創
770 人瀏覽過

How Can I Efficiently Get the Top Records from Each Group in a Pandas DataFrame?

Pandas:高效獲取組內最靠前的記錄

使用Pandas DataFrame 時,經常需要從每個組中提取前導記錄。常見的方法是利用 'groupby' 和 'apply' 函數來列舉每個群組內的記錄。

dfN = df.groupby('id').apply(lambda x:x['value'].reset_index()).reset_index()
登入後複製

但是,有一個更簡化的方法:

df.groupby('id').head(2)
登入後複製

這方法直接取得最上面的記錄,無需中間計算。此外,產生的 DataFrame 保留其原始索引。

要展平產生的MultiIndex,請使用:

df.groupby('id').head(2).reset_index(drop=True)
登入後複製

這將產生以下DataFrame:

id value
1 1
1 2
2 1
2 2
3 1
4 1

或者,您可以使用SQL 的「row_number( )」視窗函數來有效率地列舉組內的記錄。然而,此功能目前在 Pandas 中不可用。

以上是如何有效率地取得 Pandas DataFrame 中每組的前幾筆記錄?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板