Python 与GroupBy合作

Python 与GroupBy合作,python,pandas,pandas-groupby,Python,Pandas,Pandas Groupby,我有一个非常大的数据表,其中包含play\u id、position和frame列 play\u id-指的是特定的播放 位置-A或B(每个给定的比赛总共有3名球员(排)-As和Bs的任意组合) frame-时间范围(例如,每1秒想象一次定格) 以下显示了示例数据(为清晰起见,进行了简化): 播放 位置 框架 1. A. 1. 1. A. 1. 1. B 1. 1. A. 2. 1. A. 2. 1. B 2. 2. A. 1. 2. B 1. 2. B 1. 2. A. 2. 2.

我有一个非常大的数据表,其中包含
play\u id
position
frame

  • play\u id
    -指的是特定的播放

  • 位置
    -A或B(每个给定的比赛总共有3名球员(排)-As和Bs的任意组合)

  • frame
    -时间范围(例如,每1秒想象一次定格)

以下显示了示例数据(为清晰起见,进行了简化):

播放 位置 框架 1. A. 1. 1. A. 1. 1. B 1. 1. A. 2. 1. A. 2. 1. B 2. 2. A. 1. 2. B 1. 2. B 1. 2. A. 2. 2. B 2. 2. B 2.
您可以
groupby.cumcount
,按所有列进行分组,并为位置添加计数:

df['position'] = df.position.str.cat(df.groupby(['play_id','frame','position']).position
                                       .cumcount().add(1).astype(str), 
                                     sep='_')

print(df)

    play_id position  frame
0         1      A_1      1
1         1      A_2      1
2         1      B_1      1
3         1      A_1      2
4         1      A_2      2
5         1      B_1      2
6         2      A_1      1
7         2      B_1      1
8         2      B_2      1
9         2      A_1      2
10        2      B_1      2
11        2      B_2      2