在沒有回調的情況下將群組上的順序計數器列新增至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中文網其他相關文章!