Pythonを使用してグループ内の各要素にシーケンス番号を追加する [重複] 質問する

Pythonを使用してグループ内の各要素にシーケンス番号を追加する [重複] 質問する

それぞれ複数のレコードを持つ個人のデータフレームがあります。Python で各個人のシーケンス内のレコードを列挙したいと思います。基本的に、次のテーブルに「シーケンス」列を作成したいと思います。

patient  date      sequence
145      20Jun2009        1
145      24Jun2009        2
145      15Jul2009        3
582      09Feb2008        1
582      21Feb2008        2
987      14Mar2010        1
987      02May2010        2
987      12May2010        3

これは本質的に同じ質問ですここしかし、私は Python で作業しており、SQL ソリューションを実装できません。反復可能なカウントを持つ groupby ステートメントを使用できると思いますが、これまでのところ成功していません。

ベストアンサー1

恥ずかしくなるほど単純な答えに偶然出会いました。groupby ステートメントには、グループ項目を列挙する 'cumcount()' オプションがあります。

df['sequence']=df.groupby('patient').cumcount()

注意すべき点は、レコードは列挙したい順序で並べる必要があるということです。

おすすめ記事