Вычислить изменение от базовой линии по идентификатору - PullRequest
0 голосов
/ 26 ноября 2018

У меня есть некоторые продольные данные, которые представляют собой animal_id по дням обучения, как показано ниже: enter image description here

Как мне создать столбец, который вычисляет изменение от базовой линии для каждого animal_id?Здесь базовый уровень будет где ord = 0?

Ответы [ 2 ]

0 голосов
/ 26 ноября 2018

Для этого, если вы не хотите сортировать данные, вы можете использовать суррогатный фрейм данных со значением веса тела для ord = 0, а затем объединить его с предыдущим фреймом данных.

df_ord = df.query("ord==0").rename(columns={'body_weight':'body_weight_base'})
df_ord = df_ord.drop('ord',axis=1)
df = df.merge(df_ord)
df['change'] = df['body_weight'] - df['body_weight_base']
0 голосов
/ 26 ноября 2018

Используя transform first, обратите внимание на это, если ваш df уже отсортирован

df['New']=df['Body_Weight']-df.groupby('Animal_id')['Body_weight'].transform('first')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...