透過多列取得Pandas DataFrame 中每個組的第一行
在pandas DataFrame 中,通常需要檢索第一個根據特定列對DataFrame 進行分組後每組的行。使用 pandas 的內建方法可以有效地完成此任務。
要實現此目的,可以使用 .first() 方法來取得每個組的第一個(非空)元素。 first() 的語法如下:
df.groupby('group_columns').first()
在您的範例中,您希望按「id」和「value」欄位對 DataFrame 進行分組,並取得每個群組的第一行。您可以使用以下程式碼:
df.groupby(['id', 'value']).first()
這將產生以下結果:
id | value |
---|---|
1 | first |
2 | first |
3 | first |
4 | second |
5 | first |
6 | first |
7 | fourth |
如果您希望將「id」作為結果 DataFrame中的列,您可以使用reset_index()重設索引,如下所示:
df.groupby(['id', 'value']).first().reset_index()
此操作的輸出將是:
id | value |
---|---|
1 | first |
2 | first |
3 | first |
4 | second |
5 | first |
6 | first |
7 | fourth |
此外,如果您想要檢索每個行中的前n行組,您可以使用.head() 方法而不是first()。例如,要取得每組的前兩行,您可以使用:
df.groupby('id').head(2).reset_index(drop=True)
這將傳回以下 DataFrame:
id | value |
---|---|
1 | first |
1 | second |
2 | first |
2 | second |
3 | first |
3 | third |
4 | second |
4 | fifth |
5 | first |
6 | first |
6 | second |
7 | fourth |
7 | fifth |
以上是如何透過多列取得 Pandas DataFrame 中每組的第一行?的詳細內容。更多資訊請關注PHP中文網其他相關文章!