Python 基于数据帧组重新定义数据帧

Python 基于数据帧组重新定义数据帧,python,pandas,dataframe,aggregate,Python,Pandas,Dataframe,Aggregate,我正在使用这个数据帧 source fruit 2019 2020 2021 0 a apple 3 1 1 1 a banana 4 3 5 2 a orange 2 2 2 3 b apple 3 4 5 4 b banana 4 5 2 5 b orange 1 6

我正在使用这个数据帧

  source   fruit  2019  2020  2021
0      a   apple     3     1     1
1      a  banana     4     3     5
2      a  orange     2     2     2
3      b   apple     3     4     5
4      b  banana     4     5     2
5      b  orange     1     6     4
我想把它提炼成这样

 source   fruit  2019  2020  2021
0      a   total     9     6     8
1      a   seeds     5     3     3
2      a  banana     4     3     5
3      b   total     8    15    11
4      b   seeds     4    10     9
5      b  banana     4     5     2
total是各来源当年所有水果的总和。
种子是每种来源每年含有种子的水果的总和

我试过了
追加新的空行:&
但是没有得到预期的结果

获得所需输出的最佳方法是什么?

试试:

df1 = df.groupby('source', as_index=False).sum().assign(fruit = 'total')
seeds = ['orange','apple']
df2 = df.loc[df['fruit'].isin(seeds)].groupby('source', as_index=False).sum().assign(fruit = 'seeds')
final_df = pd.concat([df.loc[~df['fruit'].isin(seeds)], df1,df2])