I'm trying to do a seemingly very simple task. Given a dataframe:
data = {
    'lifestage': ['a', 'b', 'c', 'a', 'a', 'b'],
    'CC': [1, 1, 0, 1, 0, 0],
    'DC': [1, 0, 1, 0, 1, 0],
    'AC': [1, 1, 0, 1, 1, 1],
    'CASA': [1, 0, 0, 0, 1, 0],
    'Stage_1': [1, 0, 1, 0, 1, 0],
    'Stage_2': [0, 1, 0, 1, 0, 0],
    'Stage_3': [0, 0, 0, 1, 0, 1]
}
df1 = pd.DataFrame(data)
Where the orginal table looks like this:
| lifestage | CC | DC | AC | CASA | Stage_1 | Stage_2 | Stage_3 | 
|---|---|---|---|---|---|---|---|
| a | 1 | 1 | 1 | 1 | 1 | 0 | 0 | 
| b | 1 | 0 | 1 | 0 | 0 | 1 | 0 | 
| c | 0 | 1 | 0 | 0 | 1 | 0 | 0 | 
| a | 1 | 0 | 1 | 0 | 0 | 0 | 1 | 
| a | 0 | 1 | 1 | 1 | 1 | 0 | 0 | 
| b | 0 | 0 | 1 | 0 | 0 | 0 | 1 | 
So that the output will look like this
| Lifestage | Product | Stage_1 | Stage_2 | Stage_3 | 
|---|---|---|---|---|
| a | CC | 1 | 0 | 1 | 
| a | DC | 2 | 0 | 0 | 
| a | AC | 2 | 0 | 1 | 
| a | CASA | 2 | 0 | 0 | 
| b | CC | 0 | 1 | 0 | 
| b | DC | 0 | 0 | 0 | 
| b | AC | 0 | 1 | 1 | 
| b | CASA | 0 | 0 | 0 | 
| c | CC | 0 | 0 | 0 | 
| c | DC | 1 | 0 | 0 | 
| c | AC | 0 | 0 | 0 | 
| c | CASA | 0 | 0 | 0 | 
 
     
    