Python 如何根据其他列分组的另一列减去一列的值?

Python 如何根据其他列分组的另一列减去一列的值?,python,python-3.x,pandas,pandas-groupby,Python,Python 3.x,Pandas,Pandas Groupby,我想得到按ISIN和变量分组的两个值(最新值减去最旧值)之间的差值。例如 对于变量a和b我应该得到-1,对于变量c我应该得到11 check = pd.DataFrame({ 'date':[1,2,1,2,1,2], 'ISIN':[1,1,2,2,3,3], 'variable':['a','a','b','b','c','c'], 'value':[8,9,8,9,21,10] }) result

我想得到按ISIN和变量分组的两个值(最新值减去最旧值)之间的差值。例如 对于变量
a
b
我应该得到-1,对于变量
c
我应该得到11

   check = pd.DataFrame({
        'date':[1,2,1,2,1,2],
        'ISIN':[1,1,2,2,3,3],
        'variable':['a','a','b','b','c','c'],
        'value':[8,9,8,9,21,10]    
    })
    result = check.groupby(['ISIN', 'variable'])['value'].apply(lambda x: check.loc[x.idxmax(), 'value'] - check.loc[x.idxmin(), 'value']).reset_index()
这是我得到的最好结果,但它只显示正值,因为这就是
idxmax()
/
idxmin()
的工作方式。有没有办法分组,然后用最近日期减去最近日期的值