df1 = df.groupby(['card','Code'])['yearmonth','Amount'].apply(lambda x: [sum(x.Amount),sum(x.Amount)/len(set(x.yearmonth))]).apply(pd.Series).reset_index()
df1.columns= ['card','Code','Total_Amount','Avg_Amount']
Выход
card Code Total_Amount Avg_Amount
0 1 543 350 175.0
1 1 612 100 100.0
2 1 715 200 200.0
3 2 543 200 100.0
4 2 715 200 200.0
5 3 543 200 200.0
6 4 543 150 150.0
7 4 612 100 100.0
Для второго
df2 = df1.groupby('Code')['Avg_Amount'].apply(lambda x: sum(x)/len(x)).reset_index(name='Avg_Amount')
Выход
Code Avg_Amount
0 543 156.25
1 612 100.00
2 715 200.00