将下一行的值附加到当前行 pandas groupby id

append value of next row with current row pandas groupby id

我有一个数据框

id status
1  owner
1  retail
1  shop
1  customer
2  owner
2  retail

我创建了新的最后状态列,例如

id status   Last status
1  owner     NA
1  retail    owner
1  shop      retail
1  customer  shop
2  owner     NA
2  retail    owner

但我想创建一个流程列,即将最后一个状态附加到下一个值,例如

id status   From To
1  owner     NA
1  retail    owner -> retail
1  shop      retail -> shop
1  customer  shop -> customer
2  owner     NA
2  retail    owner -> retail

非常感谢

尝试:

df['From to'] = df['last status'] + '->' + df['status']

让我们做 groupby + shift 并与 status 列连接:

df['From to'] = df.groupby('id')['status'].shift() + ' -> ' + df['status']

   id    status           From to
0   1     owner               NaN
1   1    retail   owner -> retail
2   1      shop    retail -> shop
3   1  customer  shop -> customer
4   2     owner               NaN
5   2    retail   owner -> retail