首頁  >  文章  >  後端開發  >  如何基於多列檢索 Pandas DataFrame 中每個組的第一行?

如何基於多列檢索 Pandas DataFrame 中每個組的第一行?

DDD
DDD原創
2024-11-17 09:59:03728瀏覽

How to retrieve the first row of each group in a Pandas DataFrame based on multiple columns?

檢索Pandas DataFrame 中每組的第一行

問題:

問題:

如何

問題:

    如何
  1. 問題:

    如何

    問能否有效地從定義分組的Pandas DataFrame 中提取每個組的第一行多列?
    df_grouped = df.groupby(['id', 'value'])
  2. 答案:

    要基於多列檢索Pandas DataFrame 中每組的第一行:

    df_first_rows = df_grouped.first()
  3. 將資料分組:使用groupby() 以所需的欄位對DataFrame 進行分組方法:

    df_first_rows = df_first_rows.reset_index()

套用聚合函數:對每個組應用first()函數以獲得第一個非空元素:

df = pd.DataFrame({'id': [1, 1, 1, 2, 2, 3, 3, 3, 3, 4, 4, 5, 6, 6, 6, 7, 7],
                   'value': ["first", "second", "second", "first",
                             "second", "first", "third", "fourth",
                             "fifth", "second", "fifth", "first",
                             "first", "second", "third", "fourth", "fifth"]})

重設索引(可選):

如果您需要將“ id」和「value」列作為單獨的列,請使用reset_index()方法:
df_grouped = df.groupby(['id', 'value'])
df_first_rows = df_grouped.first()
df_first_rows = df_first_rows.reset_index()

print(df_first_rows)

   id   value
0   1   first
1   2   first
2   3   first
3   4   second
4   5   first
5   6   first
6   7   fourth
範例:

考慮以下內容DataFrame:應用上記の步驟:輸出:輸出:此程式碼行由“id”和“value”列定義的每個組。

以上是如何基於多列檢索 Pandas DataFrame 中每個組的第一行?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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