добавить значение следующей строки с текущей строкой 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

Большое спасибо заранее

2 ответа

Решение

Давайте сделаем 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

Пытаться :

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

Другие вопросы по тегам