How to calculate Cumulative Sum with Groupby in Python?
There are multiple entries for each group so you need to aggregate the data twice, in other words, use groupby twice. Once to get the sum for each group and once to calculate the cumulative sum of these sums. 

It can be done as follows:

df.groupby(['Category','scale']).sum().groupby('Category').cumsum()


Note that the cumsum should be applied on groups as partitioned by the Category column only to get the desired result.