答案 0 :(得分:2)
使用transform
first
,请注意,假设您的df已排序
df['New']=df['Body_Weight']-df.groupby('Animal_id')['Body_weight'].transform('first')
答案 1 :(得分:0)
要实现此目的,如果您不想对数据进行排序,则可以使用体重值为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']