コールバックを使用せずに、グループのシーケンシャル カウンタ列を Pandas データフレームに追加します
パンダ ライブラリでは、次の方法よりも効率的なメソッドを利用できます。コールバック関数を使用して、グループ化されたデータフレームに順次カウンター列を追加します。 Cumcount() 関数は、別のアプローチを提供します。実装方法は次のとおりです。
import pandas as pd df = pd.DataFrame( columns=" index c1 c2 v1 ".split(), data=[ [0, "A", "X", 3], [1, "A", "X", 5], [2, "A", "Y", 7], [3, "A", "Y", 1], [4, "B", "X", 3], [5, "B", "X", 1], [6, "B", "X", 3], [7, "B", "Y", 1], [8, "C", "X", 7], [9, "C", "Y", 4], [10, "C", "Y", 1], [11, "C", "Y", 6], ], ).set_index("index", drop=True) # Add a sequential counter column df["seq"] = df.groupby(["c1", "c2"]).cumcount() + 1 print(df)
このコード スニペットは、データフレームを「c1」と「c2」でグループ化し、各グループにcumcount() 関数を適用して、そのグループ内の行をカウントします。結果は、各グループの連続カウントを含む「seq」列が追加されたデータフレームになります。
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
このアプローチにより、コールバック関数の必要性がなくなり、連続カウンター列を追加するためのより簡潔で効率的なソリューションが提供されます。グループ化されたパンダ データフレームに。
以上がグループ化された Pandas DataFrame にシーケンシャル カウンター列を効率的に追加する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。