首頁 >後端開發 >Python教學 >如何有效地在 Pandas DataFrame 群組中新增順序計數器列?

如何有效地在 Pandas DataFrame 群組中新增順序計數器列?

Mary-Kate Olsen
Mary-Kate Olsen原創
2024-12-23 21:29:11458瀏覽

How to Efficiently Add a Sequential Counter Column to Pandas DataFrame Groups?

在沒有回調的情況下將群組上的順序計數器列新增至Pandas 資料幀

提供的Python 程式碼示範了新增順序計數器的一種方法透過沿著特定列(“c1”和“c2”)執行groupby操作並套用自訂函數,將列(seq)新增至資料幀。但是,可能有一種更有效的方法來實現此結果,而不需要回調。

一種替代方法是利用 cumcount() 函數,它提供了一種在群組內產生連續數字的便捷方法。這是一個改進的解決方案:

df['seq'] = df.groupby(['c1', 'c2']).cumcount() + 1

此行向資料幀添加一個名為“seq”的新列,其中包含由“c1”和“c2”列定義的每個組的序號。 cumcount() 函數沿著指定的群組應用,結果移動 1,從 1 而不是 0 開始計數。

這是修改後的資料幀的輸出:

   c1 c2  v1  seq
0   A  X   3    1
1   A  X   5    2
2   A  Y   7    1
3   A  Y   1    2
4   B  X   3    1
5   B  X   1    2
6   B  X   3    3
7   B  Y   1    1
8   C  X   7    1
9   C  Y   4    1
10  C  Y   1    2
11  C  Y   6    3

透過使用cumcount(),順序計數器列被加入到原始資料幀中,消除了對回調函數的需要並簡化了程式碼。

以上是如何有效地在 Pandas DataFrame 群組中新增順序計數器列?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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