取得Pandas DataFrame 中每個群組的第一行
在pandas 中,groupby 操作允許跨不同類別進行高效的資料聚合和操作。然而,檢索每個組中的特定行可能是一個挑戰。本文將示範如何在 pandas DataFrame 進行分組時檢索每個組的第一行。
問題:
我們有一個包含兩列「id」的 DataFrame和「價值」。我們希望以「id」、「value」對 DataFrame 進行分組,並取得每個群組的第一行。
預期結果:
id | value |
---|---|
1 | first |
2 | first |
3 | first |
4 | second |
5 | first |
6 | first |
7 | fourth |
解:
要擷取每組的第一行,我們可以使用.first() 方法。透過傳遞「id」作為群組鍵,.first() 為每個唯一的「id」群組選擇第一個非空元素。
df.groupby('id').first()
這將產生所需的輸出,其中第一個行為顯示每個「id」組。
取得識別符作為列:
如果我們需要識別符作為列,我們可以使用 .reset_index()。
df.groupby('id').first().reset_index()
這會產生:
id | value |
---|---|
1 | first |
2 | first |
3 | first |
4 | second |
5 | first |
6 | first |
7 | fourth |
檢索多行:
要檢索每組的前n 行,我們可以使用.head( ).
df.groupby('id').head(2).reset_index(drop=True)
這允許我們從每組的開頭檢索指定數量的行。
以上是如何取得 Pandas DataFrame 中每組的第一行?的詳細內容。更多資訊請關注PHP中文網其他相關文章!