2014-11-17 4 views
0

У меня есть повторный измеренный набор данных (много наблюдений на человека, по одной строке на наблюдение).Как рассчитать разницу дат между строками относительно сгруппированного индекса PANDAS

Мне нужно рассчитать разницу дат в количестве дней от первого наблюдения предметов до их последнего. Так что для следующей задачи игрушечным ...

## toy problem 
d = {'one' : Series(['a', 'a', 'a', 'b', 'b', 'b'], index = [0,1,2,3,4,5]), 
'two' : Series([1.1, 2.5, 3.3, 2.5, 3.3, 9.5], index = [0,1,2,3,4,5]), 
'date' : Series(['2014-01-01', '2014-01-07', '2014-01-14', '2014-02-01', '2014-02-07', '2014-02-14'])} 
df = DataFrame(d) 

df["date_d"] = pd.to_datetime(df['date']) 

Вы бы получить выход 0, 7, 8, 0, 7, 8

ответ

0
datediff = lambda x: (x - x.min()) 
transformed = df.groupby('one').date_d.transform(datediff) 
df['days_since'] = transformed - date(1970, 1, 1) 

сделал трюк

Смежные вопросы