コールバックを使用せずにグループのシーケンシャル カウンター列を Pandas データフレームに追加する
提供された Python コードは、シーケンシャル カウンターを追加する 1 つの方法を示しています。特定の列 ('c1' および 'c2') に沿って groupby 操作を実行し、カスタム プロパティを適用することにより、列 (seq) をデータフレームに追加します。 関数。ただし、コールバックを必要とせずにこの結果を達成するには、より効率的なアプローチがある可能性があります。
もう 1 つの方法は、cumcount() 関数を利用することです。これは、グループ内で連続した番号を生成する便利な方法です。改善されたソリューションは次のとおりです。
df['seq'] = df.groupby(['c1', 'c2']).cumcount() + 1
この行は、「seq」という名前の新しい列をデータフレームに追加します。これには、「c1」列と「c2」列で定義された各グループの連続番号が含まれます。 Cumcount() 関数は指定されたグループに沿って適用され、結果は 0 ではなく 1 からカウントを開始するために 1 シフトされます。
変更されたデータフレームの出力は次のとおりです:
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 中国語 Web サイトの他の関連記事を参照してください。