首頁  >  文章  >  後端開發  >  如何透過多列取得 Pandas DataFrame 中每組的第一行?

如何透過多列取得 Pandas DataFrame 中每組的第一行?

DDD
DDD原創
2024-11-10 04:54:02473瀏覽

How to Get the First Row of Each Group in a Pandas DataFrame by Multiple Columns?

透過多列取得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中文網其他相關文章!

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