Given a dataframe test and another dataframe lookup
test = pd.DataFrame( [['a',1],
['a',2],
['b',9]], columns = ['id', 'n'])
lookup_mins = pd.DataFrame( [['a',1],
['b',9],
['c',7]] , columns = ['id', 'n'])
trying to subtract each value n in test by the value n with matching id in lookup_mins using
s = lookup_mins.groupby(['id'])['n'].transform('min')
test['n2'] = test['n'] - s
Expected result,
id n n2
a 1 0
a 2 1
b 9 0
but getting instead
id n n2
a 1 0
a 2 -7
b 9 9
How to subtract test and lookup_mins to get the expected result as stated above?