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