добавить значение следующей строки с идентификатором группы pandas текущей строки

#python #pandas #group-by #append #row-value-expression

#python #pandas #группировать по #добавить #строка-значение-выражение

Вопрос:

У меня есть фрейм данных в виде

 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
  

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

Ответ №1:

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

Ответ №2:

попробуйте:

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