pandas: как создать новый столбец, чтобы получить значение другого столбца за последнюю дату и время - PullRequest
1 голос
/ 15 января 2020

У меня есть датафрейм, как показано ниже:

obj_id   data_date   value
4        2010-11-01  59500    
2        2011-10-01  35200 
4        2012-07-31  24860   
1        2013-07-28  15860
2        2014-10-15  200200

как я могу сгенерировать новый столбец для записи последнего значения времени объекта? если объект ранее не появлялся, он должен установить значение по умолчанию равным 0. Выходные данные должны быть такими:

obj_id   data_date   value    last_value
4        2010-11-01  59500    0
2        2011-10-01  35200    0
4        2012-07-31  24860    59500
1        2013-07-28  15860    0
2        2014-10-15  200200   35200

1 Ответ

2 голосов
/ 15 января 2020

Вам нужно groupby().shift()

df['last_value'] = df.groupby('obj_id')['value'].shift(fill_value=0)

Вывод:

   obj_id   data_date   value  last_value
0       4  2010-11-01   59500           0
1       2  2011-10-01   35200           0
2       4  2012-07-31   24860       59500
3       1  2013-07-28   15860           0
4       2  2014-10-15  200200       35200
...